Attempt to consolidate test and ursula

These steps were made to cleanup some of the duplication across
ursula and testing.  Over time I would like most of this code handled
inside ansible modules.  Also, initial steps in possibly breaking
out env/ into it's own repo.

* test/run and bin/ursula now using the same ansible command function.
* added a shared library that can be used between test and ursula.
* moved similar items into the shared libary.
Decrease token expiration

This sets the token's memcached ttl.  Memcached will not return
expired keys so it is a temporary work-a-round.  A bug has already
been reported upstream [1].

The ideal configuration is not to use memcached or sql for token
backends at all.  Keystone devs are working on fully ephemeral tokens
in Icehouse.

[1] https://bugs.launchpad.net/keystone/+bug/1251123
Disable ssh password authentication

We want to force ssh public key authentication, and disable password
authentication to protected against ssh brute force attacks.
Merge pull request #131 from blueboxgroup/ssh-force-public-key-auth

Disable ssh password authentication
Merge pull request #130 from blueboxgroup/blueboxgroup/keystone-expiration

Decrease token expiration
Merge pull request #129 from blueboxgroup/blueboxgroup/consolidate-test-scripts

Attempt to consolidate test and ursula
Remove duplicate python-pip package
Don't write files to local ~/.ssh/

We should avoid writing temporary files to the local user's ~/.ssh/
directory. Store private key for test environment in envs/test and
safely create a controlmasters directory for ssh mux sockets.
Create /envs/test/ if not present
Use umask to write key with correct permissions

Alter umask before writing key, then write key and restore umask rather
than writing key with incorrect permissions then go back and fix
permissions.
Perform a shallow clone of nova.git.

Change nova clone depth from 30 to 1, for faster
test runs and deploys.

This reduces the data pulled down for this repo from >300MB
to 66MB.
Merge pull request #133 from blueboxgroup/shallow-nova

Perform a shallow clone of nova.git.
Fix storing private key in envs/test/
Clone nova.git to a depth of 5.

Doing a shallow clone with depth=1 was not enough
to include the default ref of current stable/havana.
Install nbd-client on compute servers.

This is required to mount cinder volumes, and was somehow
missing before.
Merge pull request #132 from blueboxgroup/remove-duplicate-python-pip

Remove duplicate python-pip package
Merge pull request #135 from blueboxgroup/nbd-client

Install nbd-client on compute servers.
Merge pull request #134 from blueboxgroup/avoid-using-users-ssh-dir

Avoid using user's ssh dir for temporary test files
Moved tests into groups

We have too many test files, and it is a bit tricky to determine
where to place a test.  Since these are integration tests, lets
add tests in the ansible group tasks.
Merge pull request #137 from blueboxgroup/blueboxgroup/move-test-tasks-into-groups

Moved tests into groups