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
Quote and escape pagination markers

urlparse.parse_qsl urldecodes fields in URLs, but
the next URL and the next marker are then out of sync.
This change reverses that behavior, and also makes sure
that dots in markers are also escaped as %2e as they should be.

fixes bug #1188352

Change-Id: Idfb7b4cbd3c14bb0d34c506d7d3d5d3683735e7d
Merge "Fix quota issue where usages can drop to negative value"
Merge "Quote and escape pagination markers"