Engineering highly ordered two-dimensional arrays and cages mediated by noncovalent protein-protein interfaces