This fixes a NPE in Ribets.Binding::constructor; a previous commit
reduced the size by removing access to this.options, and changing it to
options, but it was this.options that was auto-vivified into a new
object when the incoming options was null.  The fix made here also
happens to reduce the size a further 15 bytes.
Another optimization, reducing rivets.js by 285 bytes.
More dieting; another 205 bytes.
In each-*, use the iterate handler to walk to object, instead of doing
it directly.  This required modifying the iterate handler to support
objects in addition to arrays.
Add a callout that can convert the cloned model in each-* back into
whatever real model the adapter wants.
Prevent the binding from calling adapter subscribe/unscribe when
@keypath is undefined.
Use adapter.read in loopDeps, instead of directly accessing the model.
In Binding.formattedValue, do not directly access the model; use
adapter.read instead.  This broke 1 test case.  Going forward,
adapter.read *must* do something sensible, at the least doing an
object[key].
In defaultExpressionParser, remove the direct access to the model on the
first tokenized part of the key; use adapter.read instead.  This broke
all functional test cases, due to the adapter used therein having to
deal with both a normal object, and a Data object.
No longer tokenize keypath at all; the adapter does it.  This allows for
foo.bar.baz.one.two.three type access, and, even possibly supporting
xpath or xql type access, if a suitablly sophisticated adapter is
written.
Abstract out the binder lookup code from the Binding constructor.
Find the binder when parsing the attribute value expression; this isn't
useful yet; later commits will then be able to inspect the binder for
various features.
Allow binders to specify a 'tokenizes' flag; when true, rivets will do
nothing at all with keypath, and it look into the model at all to fetch
the value.  It will not do any change support for the keypath either.
This allows the binder to do something completely different with the
attribute value.  This can be access by way of this.keypath.
In View.build, protect nodes from being parsed that have no attributes.
This can happen when you've loaded a text file from the server, passed
it to jquery, and the resulting list of nodes contains text nodes(the
trailing newline, for instance).