use tunnel.sock instead of resp.fp in SSLTunnelConnection

resp.fp is a socket._fileobject instead of a socket.socket object,
so it is incompatible with gevent.
Fix issue #163
add test for SSLTunnelConnection
Merge pull request #157 from Infinidat/pull_request_2

Fix SSL tunnel socket
fix httplib NameError
add test
add keyFile and certFile to SmartConnect
white space consistency

tab length is 3 spaces, except for the code in ReadDocument
Use urn map for attribute resolution from top-level names

pyvmomi objects can be resolved by the wmodl name, e.g. "vim.vm.RelocateSpec" or by the
wsdl name using e.g. "vim.VirtualMachineRelocateSpec". The latter uses hard-coded code
instead of dynamic code, which makes it hard to add more top-level names like "sms" for
the Storage Monitoring Services.
Change SoapAdapter request context to be per instance.

SoapStubAdapter supports adding soap headers using GetRequestContext, but
the request context is thread-local which is not very useful.
This is needed e.g. for vSphere SMS API, where only the SMS SoapAdapter needs
the additional headers.

_threadLocalContext and its getter functions are not used anywhere else so they were removed.