Call virt.driver.destroy before deallocating network.

Call virt driver destroy before releasing the instance's
ip address, so that certain failures can be handled.
For instance, if destroy raises InstancePowerOffFailure,
do not deallocate network resources.

Fixes bug 1180178

Change-Id: I9bde984d2393bd73a73eae6065defb2ed7c01492
Replace openstack-common with oslo in HACKING.rst

Change-Id: I8c6426983ec374e903c64108b990e5d4550e3fcc
Rename unique constraints due to new convention.

We have found that current constraint name convention allows us to create
constraints with duplicate names. It happens if we add constraints
in different tables with the same column names (for example, `name`,
`deleted`). In this case we can not create new constraint in mysql due to
database limitation (it requires constraint name to be unique within a
database). To solve this issue unique constraint name convention has
been changed from "uniq_c1_x_c2_x_c3" to "uniq_t0c10c20c3" where `t` is
a table name and columns `c1`, `c2`, `c3` are in UniqueConstraint.
Fixed unique constraints in models description.
Synced db code from oslo (function `_raise_if_duplicate_entry_error()`
modified respectively to new unique constraint name convention).

blueprint db-enforce-unique-keys
Fixes: bug 1182054

Change-Id: I4122dfb910a07a1a423781ebc22e9ce50596a05d
Merge "Rename unique constraints due to new convention."
Merge "Call virt.driver.destroy before deallocating network."