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.

This change is to accommodate other auth mechanisms like token-based auth.