Add backbone.js to test/data/.
Add jQuery-1.9.1.js to test/data/.
Add some real serious tests.

Take a whole file, parse it with Esprima, then check it deeply.
Fix bugs revealed by serious tests.
When deep is a function, call it whenever type.check(...) will return false.

We used to call deep only when a Def type check failed.

Coercing deep to a boolean when checking Type.or types was also a bad idea, because it made it impossible to see where the checking actually failed.

Passing a function for the deep parameter seems like a good debugging technique but not much else.
Eliminate the circular dependency between isFunction and Type.
Bump NPM version to 0.2.2 in preparation for publishing.