Add initial prototype

@barnabyc @flahertyb @ermanc @AdamEdgett 

Note that while the cursor supports sync, the main .patrol api does not yet support it.
And yes this code is incredibly messy.

I chose mocha because jest/jasmine has some issues running with generators

This code also requires node 0.11.x to run.
Naming perspective: rebuild state, or build updated state?