Volume type access extension

This extension adds the ability to manage volume type access:
* Volume types are public by default
* Private volume types can be created by setting
  the is_public boolean field to False at creation time.
* Access to a private volume type can be controlled
  by adding or removing a project from it.
* Private volume types without projects are only visible
  by users with the admin role/context.

Implementation details and unit tests were mostly adapted
from Nova flavor access extension.

DocImpact: New volume type access extension
Implements: blueprint private-volume-types
Change-Id: I8faf1d8097bf8412d4e169ec3503821351795561
Merge "Volume type access extension"