optimize init time binding
use inheritance to simplify the Binding classes

in this case inheritance reduces duplication and makes the
similarities between the classes more obvious
move debug statements to the binding constructors

easier to filter for them there since they have their own debug
namespace
move a bit more stuff into the Binding base class
move the the interpolation code to the base class
move public utilies to the bottom

at some stage it might be better to seperate these and pass them as
an arg to `Reactive.bind` callers
move most utilites to binding.js

and rewrite utils.interpolate so there is less indirection. that
one was really messing with my head.
private tags
fix editable example
comments for beginners

and to keep the rhythm
Merge branch 'jkroso' into refs

* jkroso:
  optimize init time binding

Conflicts:
	component.json
	lib/index.js
tidy
use serve(1)
add cell tests
sub-class bindings on string type

this is where most of the polymorphism will be so makes a lot of
sense split into sub classes. It should make it pretty easy to tune
their behaviour later on.
mark extension points
Merge branch 'refactor' into refs

* refactor:
  mark extension points
  sub-class bindings on string type

Conflicts:
	lib/index.js
clean make
intial working cells implementation
test argument passing