Py client SSL cert handling fix

The py client no longer silently trusts all SSL certificates. Change list:

- removed dependencies on httplib (in std libs), httplib2 (3rd party), and urllib2 (std libs).
- used requests (3rd party) for all http functionality instead. Tested on 2.3.0, but according to the requests docs should work on >1.0. Requests seems to be the go-to python http library and Does The Right Thing with SSL certificates out of the box, unlike the python std libs and httplib2.
- vastly reduced code duplication in compiled client.
- cleaned up the exposed namespace.
- added an optional constructor argument, trust_all_ssl_certificates, that defaults to false.

Note the kb v26 image is still on requests 0.13, although auth and the shock client both now use > 1.0, as I understand it. The bootstrap repo specifies requests > 1.0.