PDZ domains: structural modules for protein complex assembly.