Self-assembled two-dimensional protein arrays in bionanotechnology: from S-layers to designed lattices.