Deep mutational scanning: assessing protein function on a massive scale