Avoid .call operations where unnecessary

Provides a slight optimization on hot paths, but generally is a better practice for performance.
Avoid bind when possible, favoring closures
Optimize destroy logic

Avoid looping over calls that can be done in shot and utilize closers rather than binds.
Optimize template context generation

Avoid cloning context when otherwise unnecessary.
Optimize the url helper

Avoid arguments deoptimization cases.
Optimize event registration

Avoid repeated parsing operations and other potential performance issues.
Use _resetIdCounter for uniqueId

Allows us to avoid global variables and causes an approximately 6x increase in the performance of this method.
Strip the getOptionsData helper

Since data rendering is now default in handlebars and the errors will reference data and also occur early in the dev process, the overhead both for wire size and runtime exec of this sanity check does not seem worthwhile.
Use Object.create for context cloning

Increases the overall render performance on newer runtimes due to avoiding a copy of the view/current context on execution.

This has the side effect of `context` now returning a non-cloned object. Callers should take care to not modify the returned object.
Avoid intermediate object in tag util
Avoid .apply calls where possible
Avoid depot cases in registerViewHelper helper
Defer element append handler unless necessary
Remove data object bind/unbind return value
Optimize renderCollection append item usage
Optimize collection helper event forwarding
Avoid class deopt in View constructor
Avoid try deoptimization in render
Move forms into separate mixin

This allows lumbar consumers to conditionally include this behavior. Longer term we will want to look at per-view options that let us conditionally include the form handling behavior (or make a definitive we do not support call)
Remove unnecessary vars