Allow event callback registration for arbitrary resource types

In some cases events should still be able to be registered for
resource types that have not been explicitly defined due to an
extension not being loaded or active. The if-check to raise
a ValueError if the ResourceType has not been explicitly
defined by a @dependancy.provides line has been removed.

Change-Id: I9fb368c5734a4a560a4bdd97d4467e2f76ca0e5c
Implement filter support in driver backends

Currently filtering is only done at the controller level, leading to
performance issues since we are not using native filtering capabilities
of any of the underlying backends (e.g. SQL, LDAP). This patch enables
such support.

This support is provided via a generic 'driver hints' approach, allowing
other types of hints to be added in the future.

Limitations:

- The LDAP backend does not yet support for filtering, leaving it for
  the controller level.  LDAP support will be added in a separate patch
- Filtering for service, endpoint and policy is left at the controller
  level, since these operations are not considered performance issues.
- Due to MySQL defaults, case sensitive filters are not yet well tested

Implements bp filtering-backend-support

Change-Id: If5229d89a39dca952dee3b1c4cbf3b34b8afa95b
renamed extensions development doc

renamed file to follow the naming convention employed by other docs
(which produces a lowercase URL on http://keystone.openstack.org/ using
underscores as a word separator)

Change-Id: I450aa89286d69e1c7485b9ede7c0a9ab78926640
Merge "Implement filter support in driver backends"
Merge "renamed extensions development doc"
Merge "Allow event callback registration for arbitrary resource types"