If the "deep" parameter is a function, use it to report type errors.
Fall back to field.defaultFn for missing fields in checkAllFields.
Add a simple sanity test of Def.prototype.isSupertypeOf.
Register a qualm about the Expression type inheriting from Pattern.
Explode a dense boolean expression into well-commented if statements.
Don't expose builder arguments to field.defaultFn anymore.

The builder arguments aren't always available, and all the information they provided can be accessed via the node object itself, which is always available.

This makes the lib/xjs.js code somewhat cleaner, anyway.
Bump NPM version to 0.2.1 in preparation for publishing.