Bugfix: Fix missing and incorrect assert statements.
Unittests: Cleanup our unittest API to be more dev-friendly.

The expect* messages have been moved from Datagram to a new subclass of unittest.TestCase.
The debugging/error output from failing a unit test has been improved.
Miscellaneous unittest implementation errors have been discovered and fixed from the changes.
Bugfix: Fix failing test_ranges in MessageDirector.
Unittest: Lets be alot more torturous with our MessageDirector test_range unittest.
Typofix: Dbserver protocol.
Bugfix: Stateserver tests should expect all the appropriate channels on DELETE broadcasts.
Bugfix: DBSS GetField(s) behavior for db-only fields.
Bugfi:  Fix errors in DBSS unittests.
Bugfix: Fix handling of cached context for object loads.
Bugfix: Database should keep field order in update broadcasts.

The reasoning here is that its possible to override a previous field update in the same packet by either sending the same field twice.
An example if when this WOULDN'T be a mistake, is if someone wanted to send two molecular fields that had one or more fields of intersection.
Bugfix: Test should expect ALL the updated fields.

Also in this commit, Soci database should use unsigned int for comparisons with size_t.
Unittests: Improve debug out for expectMany.

To improve the debug output a little, we actually try to match the failing
datagram against the most similar datagram.
If the channels are the same as an expected, we're going to guess that is
what we want; otherwise we try the first datagram with matching length;
if nothing else, then we always try the first datagram. (We infer that the
order of the datagrams is in EXPECTED order of receipt even if their may
be datagram race conditions.)
Bugfix: Fix yaml database unittests.

Fixed items:
  (dbserver_base_tests.py)
    - Improperly calling add_uint32 instead of add_doid
    - Forgetting a field when expecting a delete fields broadcast
  (DatabaseServer.cpp)
    - Using the del_fields length instead of set_fields length when
      reseting a value to its default and broadcasting the update.
Bugfix: Stop SociSQL from overriding values when the transaction is not a failure.
Bugfix: New tests from merging branch dbserver were set to use add_doid instead of add_uint32.
Unittests: Elaborate on the MessageDirector test_range tests.

Add a defined behavior for parts where it was previously ignored pending discussion.
Add note blocks describing alternate behaviors which are not clearly better or worse.
Be more strict with the behavior of some upstream unsubscribes, when it is clearly better.
Bugfix: Satisify unittest changes for MD test_ranges.

Greatly simplifies the upstream range unsubscription.
Allows us more restricted ranges while also reducing computational complexity.
Bugfix: Properly cleanup after md test_ranges.
128bit: Fix typo in uint128.h causing incorrect subtraction.
Merge branch 'master' into bugfix/unittest-cleanup