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.