Surveying Mount Improbable: Computational Challenges Facing Evolution