Add parsing of row move messages.
Split out row insertion, and reuse it for destination-only moves.
Split out row removal and use it in the source-only move case.
Use insert+remove instead of reset for moves.
Implement proper row moving for the case that both sides are loaded.

We now no longer fall back to insert/remove operations for this.
Merge branch '2.0'