Adds Generic Auth Concept to Client

API: Adds 'auth' keyword argument to SoftLayer.Client(). This object
     should respond to get_headers(). If just username and api_key
     are passed in, BasicAuthentication will be used for auth.