Incorporating protein flexibility into docking and structure-based drug design