Adds simple tenant usage support for the Nova V3 API

Adds support and tests for the os-simple-tenant-usage
extension for the Nova V3 API. There are no
differences between the V2 and V3 API and this change
adds the client code to enable the usage command. Note
that with nomenclature change from tenant to project
occuring in Nova there will be a difference between
the V2 and V3 API in the future.

Differences between the V2 and V3 API are described here:
https://wiki.openstack.org/wiki/NovaAPIv2tov3

Partially implements blueprint v3-api

Change-Id: Iddf6211c9c87cbb191d9a5d5a65710b343c30e67
Allow empty response in service-list

If a user runs 'nova service-list --binary something-weird', where
something-weird is a binary that is not listed the result is a confusing
IndexError. That is because the result is expected to always have at
least one result.

Part of the reason for that is that the fake client does not make it
easy to simulate an empty response in tests. That is why there is no
regression test associated with this bug-fix. That is also why I am
marking thas as Partial-Bug, as this corrects the symptom, but it does
not prevent it from regressing.

Change-Id: I3e6798d63a662c245196b3bf95bb7e1b0ea9c3a4
Partial-Bug: #1260504
Code cleanup: use oslo's to_slug() instead of slugify()

The bash completion code is the sole user of the slugify() function
in utils, which is substantially similar to to_slug() provided in
strutils from oslo.

Change-Id: Ib4eb7e4c0fa0e9bc5c4a0856f6391911d8f8fd3b
Closes-bug: #1266118
Merge "Allow empty response in service-list"
Merge "Adds simple tenant usage support for the Nova V3 API"
Remove class_name parameter from quota_class

class_name parameter is not used in both Nova v1.1/v3 API.
Nova considers the part of url as class_name.
For example, bar is considered as class_name in the following case:
 curl -i 'http://localhost:8774/v3/os-quota-class-sets/bar' -X PUT ..

This patch removes this unused paramter from quota_class.

Change-Id: Id4eba5b2a17506bc04ea23ef1097ef9cdb9caf8a
Merge "Code cleanup: use oslo's to_slug() instead of slugify()"
Removes vim configuration headers

 - Removes vim headers: It's not needed to set tabstop tons of times,
   this can be done by setting vimrc.
 - I did not update files in common/* and install_venv_common.py because
   these files are sync with oslo.

Note:
  http://lists.openstack.org/pipermail/openstack-dev/2013-October/017353.html

Closes-Bug: #1265474
Change-Id: Ia09dc2c908187a756bf55eaba74655484304517d
Using floating-ip-{associate|disassociate}

This patch implements a blueprint to add more consistency into
nova command, especially for the subcommand "floating-ip-*"

Currently when we want to associate or disassociate an ip with
nova we have to use add-floating-ip and remove-floating-ip. This
is not consitent with the actual scheme of the subcommands:

example:
  nova image-*
  nova flavor-*
  nova floating-ip-*

 + In the client v1.1 this patch displays a deprecated message when printing
   the help message for add-floating-ip and remove-floating-ip.
 + In the client v3 this patch do nothing because all floating ip commands are being
   removed.

$:~/python-novaclient$ nova help | grep floating
    add-floating-ip     DEPRECATED, use floating-ip-associate instead.
    floating-ip-associate
                        Associate a floating IP address to a server.
    floating-ip-bulk-create
                        Bulk create floating ips by range.
    floating-ip-bulk-delete
                        Bulk delete floating ips by range.
    floating-ip-bulk-list
                        List all floating ips.
    floating-ip-create  Allocate a floating IP for the current tenant.
    floating-ip-delete  De-allocate a floating IP.
    floating-ip-disassociate
                        Remove a floating IP address from a server.
    floating-ip-list    List floating ips for this tenant.
    floating-ip-pool-list
                        List all floating ip pools.
    remove-floating-ip  DEPRECATED, use floating-ip-disassociate instead.

Implements: blueprint commands-floating-ip
Change-Id: I5337d0f1ce5ec4826da6ecd2b6ae4ae7b97801e0
Merge "Removes vim configuration headers"