Enhance tests for assignment create_grant when no user or group

There were no tests that show the behavior of create_grant when
the user or group doesn't exist. Turns out the behavior is
different depending on the backend (sql vs kvs vs ldap).

Change-Id: I71c3e2b94aaa44e40c8a891b49cc2a9961cee16f
Related-Bug: #1239476
Fix KVS create_grant to not raise NotFound if no user/group

The KVS assigment backend would fail with NotFound if the user
or group didn't exist when calling create_grant while the SQL
assignment backend did not fail.

It's unreasonable to check if the user or group exists when
creating a grant, so the KVS assignment backend is changed to
not require the user or group to exist.

Closes-Bug: #1239476
Change-Id: I2d3b2fd82e7d4d33ac7158968d72cbfbe37528dc
Dependency cleanup

Clean up dependency usage.

a) If the class uses a dependency directly, make sure it's
included (getting from superclass isn't enough)

b) If the class doesn't use a dependency directly, make
sure it's NOT included (being a superclass isn't excuse)

Change-Id: Ifbd489f349ec019a41093a2814664e6d8c9f0069
don't rebind stdlib's os.chdir function

Change-Id: I07d5e8c58007cf716eecb922afb67abe3b53b981
Add pycrypto as a test-requirement

Adding pycrypto as a test-requirement to allow for testing the optional
KVS encryption support (ENCRYPT and HMAC validation of values).

bp: dogpile-kvs-backends
Change-Id: I2e9184dc66393cf805b18abd3822668a6f3792fa
Deprecates V2 controllers

The revocation_list controller method's code was copied from the v2
controller to the v3 controller.  This allows us to cleanly deprecate
the v2 API without impacting the v3 API.

Closes-Bug:#1222696
Change-Id: I0ca7a091a50007c07dfe6942b2653c617ca98e70
Adds a resource for changing a user's password

blueprint v3-user-update-own-password

Change-Id: Icdf0ae76e7dfc82c01394ebbfcad4d751a33a3ef
Revert "Return a descriptive error message for controllers"

This reverts commit 6512c71a49c14e1a2f7a857a37b96883def57788.

While this fixes the problem it doesn't do it in a comprehensive way.
The right way would be to implement real validation.

The reverted patch breaks on methods marked as deprecated because the
deprecated decorator is a function that accepts *args and **kwargs.
This bypasses the check and we go back to the same TypeError from the
original bug.

Related-Bug: #1149987
Change-Id: I0efbcce9abc23bf79eb970e441e5f7644b1c8453
Merge "Add pycrypto as a test-requirement"
Merge "Revert "Return a descriptive error message for controllers""
Merge "Adds a resource for changing a user's password"
Merge "Deprecates V2 controllers"
Updated from global requirements

Closes-Bug: 1239892
Change-Id: I669865879d8c12c5b810553ef9c7f87b9fb26fb1
Merge "don't rebind stdlib's os.chdir function"
Merge "Dependency cleanup"
Merge "Updated from global requirements"
Merge "Enhance tests for assignment create_grant when no user or group"
Merge "Fix KVS create_grant to not raise NotFound if no user/group"