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.


I got rid of the whole idea of service-bound request functions in pure_http, because it's kind of an over-specific abstraction. Code that wants to construct a request function to pass to code that wants to use it shouldn't restrict the services it can use -- and it's appropriate for a function that's specifically about LBs to know that it wants to talk to the LB service (as abstracted in ServiceType.CLOUD_LOAD_BALANCERS), by passing it to request_func.