undefined after: means add first, not last

This error computing revisions from the journal would cause
a reconstruction to be incorrect if there were any add to 
the first position of the story. This must be unlikely because
it hasn't been noticed.

Client now agrees with server. Both ruby and node versions
already agreed.
replace test json with helpers that make better tests.
Use relative addresses for reconstructing pages with moves.

We construct a relative address for a move action from the
item id ordering provided by the move action.

The relative address identifies what item the moved item will follow.

Notice that this approach is only used client-side. The servers
can continue applying moves as they always have.

The two methods should be equivalent when retrieving older revisions
from the version history so long as the history follows a single thread.

The relative form allows us to mash multiple histories together and then
'fork' the resulting construction over top of once single-threaded versions.
Merge pull request #52 from fedwiki/ward/relative-move

Ward/relative move