Let each metric configure itself, and encapsulate its configuration (continued)

This is a continuation of #91 started by @bf4. (Not sure best way to collaborate with commits from multiple users on a single pull request. Guess I could've opened a pull request on the source fork?)

I think this is pretty close. Specs should pass. Did a little renaming/shuffling around to move toward a consistent "configuration api" and added documentation.

If any feedback, let me know. I can work on it more later tonight or tomorrow.