Make os-services API extensions consistent.

Updates the os-services API extension so that it is consistent
internally (index and update return similar formats), and so
that it works with the recent novaclient code which sends
the following request body format:

  {"binary": "nova-cert", "host": "nova1"}

Also, updates the response body format of the update call so that it
wraps things in an extra service dict which should make novaclient
happier here as well (and is consistent with other extensions too).

Fixes LP Bug #1147746.

Change-Id: I932160d64fdd3aaeb2ed90a092ecc7a36dcc9665
Fix db archiving bug with foreign key constraints.

Fixes bug 1137977

A few Nova tables have foreign key constraints on other tables.
Deleting a row whose id is referenced as an enforced foreign key for
another table results in an error.

The fix is to detect the IntegrityError when we attempt to delete a row,
and exit from archive_deleted_rows_for_table early.  The parent
archive_deleted_rows function will continue deleting from other tables,
including the one whose dependence on this row caused the IntegrityError,
and things will eventually sort themselves out.

Change-Id: I0afdfe0778057abc5fd269a20bfa4c4ca3a7b003
Merge "Make os-services API extensions consistent."
Merge "Fix db archiving bug with foreign key constraints."