Initial commit of rewrite.

Switching to plain object patches, with the intention of creating a
Backbone.js compatible `patch()` later.
Handle function, NaN, and Infinity like JSON.
Export all functions.
Add scope.
Split up cloneJson.
Call into toJSON method, if it exists.
Reference exports as this, allowing inheritance.

This doesn't work for the Scope object, but reimplementing it for custom
behavior probably costs fewer lines any way.
Derp.
Initial attributes as first scope parameter.
clone* in similar vain to patch* and diff*.
README with example, and test them as well.
Document scope.js in the README.