Added abc.ABCMeta metaclass for abstract classes

Change-Id: I036148693a38fb1b0d1c298eb22d16e8d24ecacf
Handle engine creation inside of Connection object

We now store sqlalchemy engine object inside of our Connection object.
This allows us to open multiple concurrent connections.

Change-Id: I57b6d89f30c065643dbfab958e032f2adac59cd6
Replace BoundedInt with WSME's IntegerType

WSME has contained IntegerType class since version 0.6.
The class has been tested in WSME, and it is almost the same as
Ceilometer's BoundedInt class.
For the maintainability, this patch replaces BoundedInt class with
WSME's IntegerType class.

Change-Id: I8444d54c0bc53aec26dad57645f3f6e3f9867f01
Fixes invalid key in Neutron notifications

The tenant id in notifications is read from variable _context_tenant_id rather
than tenant_id. This caused KeyErrors when updating floating IPs.

Change-Id: I883e049f28cd8de6d46a622572832bdbf382de24
Closes-Bug: 1276761
Adds flavor_id in the nova_notifier

The instance_type_id is the primary key stored in Nova's instance_types table.
The flavorid is the public id provided at the creation of the flavor.

When we create an instance using the flavor m1.tiny, we can see instance
info contains below keys:
    "instance_type_name" :"m1.tiny"
    "instance_type_id": 2,
Actually, the "m1.tiny" flavorid should be a string '1'. Considering
changing the id's tpye maybe cause confusion with the already saved old
data, add flavor_id to the flavor dictionary.

The instance_ref has all the flavor infomation, not need to get flavor
info from DB again.

Change-Id: I5bd19b2bc2f874d31fd4609306c24e0f51517281
Closes-Bug: #1273638
Merge "Replace BoundedInt with WSME's IntegerType"
Merge "Added abc.ABCMeta metaclass for abstract classes"
Merge "Handle engine creation inside of Connection object"
Merge "Fixes invalid key in Neutron notifications"
Merge "Adds flavor_id in the nova_notifier"