A Hierarchical Approach to the Design of Protein Crystals