refactor: Refactor test setup.

Befor each test, a div element with attribute ng-app, is created. This is a container into which test can put some content. This container is destroyed after each test

Closes #925
feat(NgElement): NgElement uses EventHandler

NgElement uses EventHandler to register event listeners. Event Handler
exposes API to register callbacks, release them as well as a method
(walkDomTreeAndExecute) that is used (by TestBed.triggerEvent) to
emulate even bubbling when DOM tree is not attached to document.body.
ElementProbe is also extended to allow attaching additional
listeners. This can be used by different components to
programatically attach event handlers (see InputSelectElement and it's
change event handler).

Closes #399
refactor(NgModelSelectSpec): Refactor tests to use the new event bubbling API
refactor(NgEvents): NgEvents use EventHandler.

Closes #985