Add HTTP Proxy support.

Lots of ideas and code from #13, thanks to @ryber for the starting point!

Still needs a solid test for the changes to `UrlConnectionHttpHandler`, but I figured I'd get this PR going so we can discuss the overall strategy in parallel. The basic idea is that each `KeenClient` instance has a private `proxy` variable and that is passed every time a `Request` object is created. If a `Request` has a proxy set, `UrlConnectionHttpHandler.openConnection` uses it.
Is there a reason not to have a setProxy(Proxy proxy) method instead? I guess it would be OK to have both, but I think some dependency injection here would help with testing.