http/socks4/socks5 Proxy support


I've finally managed to refactor the proxy support changes from requests lib into urllib3.

Test results:
```

 foxx@test01 [~/development/urllib3] > python test/test_proxy.py
TEST Proxy: http://192.168.56.1:8888
HTTPS OK
HTTP OK
---
TEST Proxy: socks4://192.168.56.1:8889
HTTPS OK
HTTP OK
---
TEST Proxy: socks5://192.168.56.1:8889
HTTPS OK
HTTP OK
---
TEST: No proxy via PoolManager
HTTPS OK
HTTP OK
---
TEST: No proxy via connection_from_url
HTTPS OK
HTTP OK
```

Could one of the core devs please review this patch and make sure you are happy with it. Once signed off, I will go ahead and do a documentation update as well (want to make sure everyone's happy first).

I've used as many of the suggestions from other tickets as possible, but please let me know if I have missed anything or if it needs to be changed.

My sincere apologies it has taken so long to get this done, spare time is like gold dust :(

This references the following discussions:

https://github.com/shazow/urllib3/pull/56
https://github.com/kennethreitz/requests/pull/478
https://github.com/kennethreitz/requests/issues/362


Others involved:
@senko @wolever @kennethreitz @shazow @Anorov