Updated & Expanded Subscription API.

This patch adds broad functional test coverage to the subscriptions
API, including a fix for a bug introduced when we started to treat
enum searches as a collection. The changes are as follows:

- Added test for regular user and superuser actions.
- Added current user permission checks for various actions.
- Added data validity checks for create/destroy subscriptions.
- Added supported subscription types to DB api.
- Added mock data.
- Properly updated target_type API parameter for searching.
- Fixed deferred worker use of enum types.

Change-Id: Icc80aa87222863f7c1c620cd1a78b965571daa33