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