Forbidden update message diffs images/tasks/member

On an forbidden update, the message returned to the user
is not tied to the type of object modified by the operation.
For example: a forbidden image member update will return
`You are not permitted to modify 'status' on this image.`
instead of image_member.

This patch fixes the issue for images, image members and tasks.

Change-Id: Ie9774807f0190a517a619aeb56c1398741ac4407
Closes-Bug: #1250228
Remove unused exceptions

Removed the exception classes in the following because not referenced
anywhere.

 -MissingArgumentError
 -NotAuthorized

Change-Id: I9f8d8e865447d772a9c09141b96075620c6d1b07
Closes-Bug: #1259818
Cleanly fail when location URI is malformed

At the moment when a malformed URI is passed at either image creation
or update Glance fails with an Error 500. This commit allows Glance
to fails cleanly with a 400 BadStoreUri.

Change-Id: Iffe9be3b65758d18c7e7f96b3ceb3399b9748b63
Closes-bug: #1257498
Enable tasks REST API for async worker

- add REST API layer for async worker(tasks) to
support tasks operations.
- update to include sparse task for tasks.index
- add domain proxies for handling  authorization,
policy enforce, notification while processing
task requests.
- add Task domain entity and TaskFactory to create
new Task domain entity objects.
- add integration test for testing tasks api

Co-authored-by: Fei Long Wang <flwang@cn.ibm.com>

Partially implement blueprint async-glance-workers

Change-Id: I072cbf351c06f59a7702733b652bfa63e5abbaa6
Merge "Remove unused exceptions"
V2: disallow image format update for active status

The V2 API doesn't not allow empty `container_format` and `disk_format`
when creating a new image.
Currently, it is possible to update these properties after data have
been saved to the image which is contradictory with the previous
statement.
This change disallows modifications of these properties for images with
a status different than `queued`.

Change-Id: I98c22197ba6d96470976718d48ac53748a19ffc6
Closes-Bug: #1249412
Merge "Enable tasks REST API for async worker"
Merge "Forbidden update message diffs images/tasks/member"
Return 204 when image data does not exist

Currently a GET on image-data in glance v2 returns 404 when data does not
exist. But according to the API docs the HTTP status code returned in this
case should be 204.

This fix makes Glance return the right HTTP status code.

Change-Id: I34cf68e96f631f05cff349329245f74aee42397c
Closes-Bug: #1251055
Merge "Cleanly fail when location URI is malformed"
Merge "V2: disallow image format update for active status"
Merge "Return 204 when image data does not exist"