Improve share list API filtering

This change adds possibility to filter shares in a lot of possible ways.

All types of share listing were updated to support additional filtering by:
- share network
- snapshot
- volume type
- host
- limit and offset a la pagination
- project id (useful with '--all-tenants')
- metadata (whether specific metadata keys and values are set or not)
- extra-specs (whether any volume type exists and has specific extra-specs
    set up)

And sorting by:
- key of models.Share
- direction (asc, desc)

Implements blueprint improve-share-list-filtering

Change-Id: Ifc53ab27bc710562cc510f30a2c847eda385d5bc
Merge "Improve share list API filtering"