test(datepicker): add test to check days order in datepicker

Added a new gulp task called 'test:timezone' that sets the environment timezone for PhantomJS to use. It expects a parameter on the command line with the name of the timezone to use, like: 'gulp test:timezone --America/Sao_Paulo'.
Using this new task, the new test that checks for days order in datepicker fails for America/Sao_Paulo because of changes in Daylight Saving Time - from what I could understand, Brazil changes the time at midnight and the datepicker uses dates with time set to midnight, so when it increments one day, it goes back to the previous day, which caused repeated days to show up on the calendar.
fix(datepicker): fix duplicate days in picker when DST changes

Depending on the browser timezone, the datepicker might show duplicate days when the DST causes hours to go back - this will happen in São Paulo, Brazil timezone in 18th October 2014 at midnight, when the time will go back 1 hour, so the datepicker will show two 18th days and miss the 19th, as shown in #1133.

If DST causes time to go forward, there is no problem because the day will still be incremented. If time goes back, the fix checks if hours are > 12, meaning we went back to original day, and add +2 hours to compensate for the hours going back, causing the day to increment as intended. (Code copied from jquery ui)
refactor(typeahead): better updating and selectMode

change updating mecanism from model watcher to parser
this provide better control of whats actually gets to model
"selectMode" uses options "value" attribute and changes model only upon valid selection
When not in "selectMode" model value is synchronized with input string and upon selection changes to options "label" attribute
"formater" to update viewValue use new "$parseOptions.parseViewValue" method

matches are only updated on input change (via parser) so simply focusing a prestine control would just create an empty list