element binder refactor

There is now an ElementBinderBuilder and ElementBinder has been broken into TemplateElementBinder and ElementBinder.

I believe this is more performant (but have no numbers to back up that claim)

I would love comments on the general design of this refactor (e.g. the Builder class and the two different ElementBinders)

@tbosch