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.
@ermanc using JSON for deep cloning like this is definitely a quick hack and we should use something like what you propose when we refine this code.