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. Doing this helps to demonstrate that the new
method of specifying credentials is working, and it is a step down the road of
implementing an API smoke test.
Merge pull request #1136 from Ichimonji10/auth-override

Implement #1101, improve API smoke test