Auth revisit

This is related to the changes made in #393.

This set of changes makes a transports.Request object which is used instead of having many arguments to the transport functions. The transports.Request object is intended to hold all the context needed to make a SoftLayer API call (post-insertion of authentication context). This allows for authentication to be done in a much more flexible way and makes both XML-RPC and the simpler HTTP API take the exact same object.

The only two places the transports are directly used are the SoftLayer.API client (obviously) and the metadata manager (not obviously). The metadata uses a different transport because rest API is the only API endpoint which supports accessing the metadata service.