Make get_all_server_info and get_scaling_group_servers use pure-http

The metrics.py code had to be updated to deal with this, and I refactored the effectiness a little bit into metrics.py, so that there's a new get_all_metrics_effects function extracted from get_all_metrics.

I've added unit tests for get_all_metrics_effects, and left the unit tests for get_all_metrics in place (and updated them to ensure that code is using pure-HTTP properly). The tests for that are pretty nasty, but hopefully they'll go away if more of metrics.py gets Effect-ified.


The reason I ask is because [the documentation](https://github.com/rackerlabs/otter/pull/789/files?diff=split#diff-46adfe1ec6f5f279e1d90dc10518c9abR289) somewhat woefully underspecifies what a config is; however, a little later there's [a modified call site](https://github.com/rackerlabs/otter/pull/789/files?diff=split#diff-46adfe1ec6f5f279e1d90dc10518c9abR306) that assumes `config["services"]` is going to give you a service mapping. That may well be, but the docstring seems to suggest it's just slurping this from a file, in which case (unless that's a Python source file) I'm not sure how the service constants got in there.