[BUGFIX beta] Resolve context issues for with-controller.

* Fixes action target when using `with-controller` (previously the action would never target the controller instantiated as the `with-controller`).
* Fixes action target within an `{{each}}` when using `with-controller` (pointed out in https://github.com/emberjs/ember.js/pull/4401#issuecomment-35959636).
* Ensures that using `with-controller` with keyword syntax works (previously mangled the scope).
* Removes `_contextController` reference completely (no longer needs modifications to `_HandlebarsBoundView`).
* Adds an additional guard around the setting of `controller` to ensure that the `bindView` only receives a `controller` when invoked from the `withHelper`. Previously, anything that uses `bind` would lookup and instantiate a controller if specified (e.g. `{{#if "foo" controller="zomg"}}{{/if}}` would have looked up `App.ZomgController` and instantiated it).
* Ensure that controllers created by `with-controller` are properly destroyed.

Closes #4401
Closes #4384
Closes #4398
Closes #4699

@rondale-sc / @rjackson