Improve logging calls

Make logging calls more resilient by parameterizing values, rather than simply
presenting the logger with a single monolothic message. Doing this prevents the
logger from choking on non-ascii inputs, as the first argument to the logger
should consist of just ascii characters.

Ensure that information about an API request is logged out before the request
made, not after the API request completes.
Allow Factory to accept explicit auth credentials

Update the following methods:

* robottelo.factory.Factory.build
* robottelo.factory.Factory.create

Add optional argument `auth` to both methods. Clients may provide a
`('username', 'password')` pair to this argument. If clients do this, then those
credentials will be used when interacting with the API instead of whatever
credentials are returned by function `get_server_credentials`.

Also: update some docstrings to be nicer, clean up some tests using the mock
library, and add a new test for `Factory.create`.
Improve API smoke test

The ability to override default authentication credentials makes some code
unnecessary remove it.

Slightly expand the API smoke test.