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.
This kind of deep cloning feels a bit dangerous to me (which is by javascript's nature it seems, with no way around it).

 JS > JSON > JS conversion breaks objects such as moment objects, obviously.

So now, I'm thinking, if we go this route (which would be awesome) we might need to rethink where we do our schema interpretation. Instead of at transport level, we might do this at route target level before we pass on the props down to other components.

Or, we could use a more purpose-built cloning logic, which, in our case, only needs to worry about the part where we are changing. As luck has it, we know specifically where we're going to make a change (using _the path_!).

Something like this? http://jsfiddle.net/h3yc9ffb/1/ 
This way we also don't incur any stringify/parse charges for parts of the object we're not messing with.

Only downside is that nobody that has access to the original state object shall change anything directly (in our case, only State Trooper has access to this object). With clone, direct changes might be stupid but side effect safe. With this, _it is not_ :)

What do you think @hojberg?