Fix quota issue where usages can drop to negative value

This is caused by an exception occuring in the model when creating
and instance. When this happens, the quota rolls back but the DB
record, created for that instance, does not. This issue is NOT fixed
in this patch but depends on
BP https://blueprints.launchpad.net/trove/+spec/security-groups-workflow-update

What this fix does is adds a check that prevents quota usages drop below 0.

Also it fixes a bug where the reserve quota was being set and not added.
This causes problem when multiple requests are sent at the same time
and causes race condition issues.

Fixes bug 1178333

Change-Id: I1c64941815b91e58d79b17d7a6e69c15c1daaf36
Merge "Fix quota issue where usages can drop to negative value"