Superhydrophobic and superhygrophobic surfaces: from understanding non-wettability to design considerations