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.
If we're using cursors, we should probably always use cursors as much as possible. This would benefit us in knowing that the API is the only way that anyone can use to change the cursor, even if the component currently seem to have no desire to do so.

If the value is flat, this doesn't really matter that much. But if the value is nested, the pattern might become dangerous down the line? 

Or, I totally misunderstood what you meant and went on a tangential exploration :D