Add support for `pop` implemented in v1.1

This patch implements pop in the client library. Pop is a new operation
that has been implemented in v1.1. It allows a client to remove N
messages from the top of queue. Although pop is a query parameter in the
server, it has been implemented as if it were an action.

Partially-Implements blueprint: api-v1.1

Change-Id: I29b771a6167185033821139bd795311f1a25a5e1
Rename `shard` to `pool`

The server's shard feature has been renamed to pool. This patch reflects
that change in the client library. The patch keeps old `shard*` methods
and functions for backwards compatibility and it also raises a
deprecation warning whenever they are used. These functions will be
removed right after k-1

Change-Id: I842bfbcf075845750bc4fff345086636cc775371
Closes-bug: #1348196
Add support for flavor to the client library

This patch adds support for flavors to the client library. Flavors are
an admin endpoint, which means pool's rules apply to them.

Since flavors were added since 1.1, this patch also adds a version
decorator that will help making sure features are accessible just if the
api_version the client has been instantiated with matches the version
the feature was added into.

Note that the core module does not use the version decorator. There are
2 reasons for this:

    1. Users accessing the core module should know what they're doing
    2. If the transport loads the spec for the API version it was
    instantiated with. If that spec does not contain a specific action,
    the whole operation will fail before hitting the wire.

Partially-Implements blueprint: api-v1.1

Change-Id: I92dbe417655a9eeefb030481a81a67840a63dd0e
Fix functional tests

Do not append the version suffix to the URL. The request transport will
take care of that.

Change-Id: If5cd729ce2d2b28d9f8522cedaa15bea032b4a82
Use queue_creation to send queue's metadata

Since v1.1, the queue metadata is part of the queue endpoint. It has to
be set/updated by using the queue endpoint. The old set_metadata and
get_metadata endpoitns have been removed.

Partially-Implements blueprint: api-v1.1

Change-Id: I7b5b50529c4591701c62a1fa92dddbae9add6265
Respect queue's lazy creation

Queue's are now lazy resources. This patch removes the `auto_create`
keyword from the queue's constructor. Either posting a message to a
queue or setting its metadata will create the queue server side.

Partially-Implements blueprint: api-v1.1
Change-Id: I4f2f2f240404b2619ba0ee75a99fecd0ad10040e
Always pass a project_id

Since v1.1, the `X_PROJECT-ID` became a required header. This patch adds
a way to specify the project id regardless of the backend. In order to
pass the project id, it's necessary to pass the `os_project_id` option
in the `auth_opts` dictionary. For example:

  auth_opts = {'options': {'os_project_id': 'yadayada'}}

Partially-Implements blueprint: api-v1.1

Change-Id: If72b758e634dc1e6bc1e1cc0c63361e8a43861bb
Cleanup technical debt

* Unused variable
* Not necessary trailing /

Change-Id: I65c8801b44ff8870426a03fdab2710a67b8a20cc