feat(tests): run tests on all browsers

Changes:

- chore(travis): cleanup the configuration

- chore(travis): run test on IE10, IE11, Safari6 and Safari7

- fix(ShadowDomComponentFactory): Make Windows & Linux return the same response
    The "\n" would be stripped on windows platforms resulting in responses
    having a different content.

- refactor(Cookies): code cleanup

- fix(Cookies): fix for IE and Safari
    path should not be null, it would extrapolate to "null"

- test(http): disable a flaky expectation

- The error message varies across browsers:
        Dartium -> "Unexpected character"
        Dart2JS:
          - Chrome -> "Unexpected token"
          - Firefox -> "unexpected character"
          - IE -> "Invalid character"

- refactor(NgEvent): code cleanup

- text(NgEvent): fix the mousewheel event on IE & Safari

- chore(pubspec.yaml): add the browser_detect package

- test(ng_form_spec): fix an expectation

- test(ng_form_spec): Fix a failing test on IE

    ref https://github.com/angular/angular.dart/issues/1309

- refactor(ng_model_spec): code cleanup

- test(ng_model_spec): el.selectionStart and el.selectionEnd are handled differently on IE

- test(WebPlatform): disable web components tests when shim is needed

- test(NgModel): fix input type=color default value

    - "#000000" for Chrome and Firefox
    - "" for Safari7 and IE11

- refactor(InputSelect): code cleanup

- fix(ng_model_select): IE has its own way of handling options

- test(select multiple): Need to explicitely select option on IE

- test(number inputs): Safari6 keep the previous value on invalid input

- test: fix broken Safari 6 animation bugs

- test: add missing argument type
chore(travis): temporary disable IE & Safari when running tests on travis

Closes #1464
feat(eventHandler): Support snake-case event names instead of camelCase.

Closes #1434
Closes #1478

Closes #1477
fix(DirectiveInjector): fix exceptions

Closes #1484
doc(routing): event.allowLeave() is on the PreLeave event since 0.4.21

Closes #1469
perf(util): call toLowerCase() only where needed

Closes #1468
chore(ng-class benchamrk): fixes

Closes #1465
test(parser_spec): fix analyzer warnings

Closes #1430
refactor(binder): move _addRefs() to ElementBinderBuilder.addAllDirectives()

Also remove key(Type) from the Directive ref ctor parameter as this can
be constructed from the given type argument
refactor(binder): node argument moved from DirectiveRef to ElementBinderBuilder ctor
style: Dart CS
refactor(selector regexp): update the selector regexp

The new regexp is easier to understand and marginally faster (~5%)
doc(compiler): improve online doc
style: Dart CS
refactor(ViewFactory): simplify the code
refactor(ViewFactory): Simplify the code as @Controller is gone
refactor(TemplateElementBinder): simplify the code
refactor(ElementBinder): Simplify the code
refactor(TranscludingComponentFactory): Simplify the code
Style: Dart CS & comments