Moved #compact to a sesparate line to make it a little more obvious
Servers with a password locked root user have a nil @password.
Merge pull request #2497 from elight/optional_root_lock

[Rackspace | Compute] 1.8.7 fix plus better passwd -l handling
Create a realistic, but fake, service catalog.
The fake service catalog matches format.
DRY up some of that service catalog generation.
Handle failed logins.

Pass 'baduser' as the username to trigger a rejected authentication.
Rackspace identity_tests now pass in mocking mode.

Implemented a mock for the #list_tenants request.
Mock the #get_containers Storage call.
Mock the #head_container Storage call.
Mock the #put_container Storage request.
Don't count the :meta entry as an object.
Another pair of tests that already work with mocks.
Some speculative mocking of #get_container.

Currently calls methods on a MockFile class that doesn't exist. Also, it looks
like the #get_container tests currently pass vacuously; they're called on an
empty container in mocking mode.
Refactor to use some utility classes.
Already took care of these three.
Don't call methods on a non-enabled CDN.
Mock delete_object and put_object.
Mock get_object.
Mock HEAD request for objects.