Engineering soluble proteins for structural genomics