Event handler functions must have a $ prefix, so we can exclude them in the extract. Support for value functions in the scope.$.get / getLocal methods, so they are now first-class. options.$.apply gets called with an extract, so we apply the latest clean snapshot that we gave to watcher functions (in the event of value functions that change value)

Watcher functions for entire scopes now receive extracts rather than live scopes. Should rename extract to snapshot.

There is an issue with functions that return a different value each time. These cause an infinite loop in watcher handling.
Rename scope.$.extract to scope.$.snapshot
README: value functions (moved) and event handlers with $ prefix
README: extract renamed to snapshot
Examples updated for extract/snapshot change and event handlers with $ prefix change
README: snapshotting and value function tweaks
ConsistentException to extend Error, might be more correct
README: note about infinite watch handler loops with value functions that return a new value each time
Checkbox and radio button support
Rename applyValue / applyAttributeValue etc to setValue etc. Matches the get methods
README: correct value function example
Event binding: shortcut to bind default events
Code tidy in node options