Add external.Base class to external plugins

By using a base class we can be bit more DRYier in the actual plugins.

Change-Id: Ic7d6b41e2bb77d06342bc25c2f1d7f519054ed0f
Implementation of opt-out from catalog data during token validation.

The additional query parameter nocatalog in GET /v3/auth/tokens allows
the requestor to receive a token response omitting the catalog data.
This makes the token response sensibly smaller in case the catalog is
large due to the vaste deployment environment and available services.

e.g. GET /v3/auth/tokens?nocatalog

blueprint token-valid-catalog-opt-out

Change-Id: I272b1282acc0f04565d88c51b87dc7e30b141b7c
Enhance tests for deleting a role not assigned

There wasn't a test that showed what happens when a role is
deleted that was never assigned.

Change-Id: I2845e3f03dc8e8f1dd41d8f41d2f6669004bc506
Related-bug: #1242855
Fix remove role assignment adds role using LDAP assignment

When using the LDAP assignment backend, attempting to remove a
role assignment when the role hadn't been used before would
actually add the role assignment and would not return a
404 Not Found like the SQL backend.

This change makes it so that when attempt to remove a role that
wasn't assigned then 404 Not Found is returned.

Closes-Bug: #1242855
Change-Id: I28ccd26cc4bb1a241d0363d0ab52d2c11410e8b3
Merge "Add external.Base class to external plugins"
Merge "Implementation of opt-out from catalog data during token validation."