Interpolate values as expressions

esprima is used to parse the interpolated expressions. The required rewriting
is performed to detect which fields to listen to, before getting converted back
into code and written to the compiled result.

`this` in the templates now refers to the scope (the specified data object),
and all interpolated values need to be correctly prefixed (i.e. `this` is
explicit, not implicit).

Net gain is that ornament properly supports nested values, in addition to
understanding single expression statements, e.g. `this.fn(this.value)`.
Updating tests to conform to recent changes
Refactor `interpolate()`
Update TODO
view->model binding for <input>
Clean up createValueFn arguments
Clean up messy attribute interpolation code
Add tests to ensure that inputs don't bind to expressions
Ensure that fields aren't extracted for call expressions