Py client SSL cert handling fix / IP logging

Two key changes: SSL cert handling and IP logging.

Change the first: 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.

Change the second: logging of forwarded IP addresses for the Perl and Py servers.

Use the X-Forwarded-For and X-Real-IP headers in the perl and python servers as
per KBASE-922:

By default, the logged ip address will be, in order of preference:
1) X-Forwarded-For[0]
2) X-Real-IP
3) The standard address

If the config file for the server includes 
dont_trust_x_ip_headers = true
then only the standard address is logged.

The content of X-Forwarded-For is always logged, if it exists, in a log
message preceding the start method message.