fix(select): fixed missing validation error when deselecting all values (select with required and multiple attributes)
fix(select): multi-select checkmark icon displays correctly without additional CSS

Reverts commit d167af80b5e055d8195559975216a1fde353230f and instead moves the checkmark icon element to before the label span. As the checkmark icon is "pull-right", it can be placed before the label.
fix(datepicker): correctly change view month when last day of month is selected

When the selected date corresponds to a day that doesn't exist in the next/previous month, the month change would not work correctly - either it would skip a month forward or it would not change to the previous month. This was caused by javascript date values rollover when changing month part of date because months have a different number of days.
This fix uses the first day of the month in the calculations to avoid the rollover.
fix(dropdown): clean up body click listeners upon destroy

Fixes JS exceptions and leaking event listeners as a result of 81235039438.

Clicking on the body calls hide(), which assumes $element is defined and tries to
remove an event handler. Calling destroy ultimately sets $element to null, which
causes subsequent calls to hide() to throw exceptions. Prior to this commit,
destroy() did not clean up event listeners on the body element, so the only way
those click handlers got removed was upon an actual click event which called
harmlessly through hide(). As a result of setting $element to null, however,
it could no longer harmlessly call through hide().

This resulted in both a lot of extra event listeners being registered on the
body element and never cleaned up, and also a lot of exceptions being thrown
any time a dropdown was removed by means of destroying its scope.
fix(tooltip): correctly bind/unbind events

Refactored events binding/unbinding code into separate methods to make it easier to identify events used.
Fixed unbinding of keyboard events when binded to 'element' instead of 'tipElement'.
Changed auto-close related event to not use anonymous handlers, so we can correctly unbind from the events.
docs(getting-started): add description for the two angular-strap files
fix(datepicker): add support to modelDateFormat for named date formats

The parsing of dates using named formats (shortDate, longDate, etc) was not working when used with modelDateFormat. Changed dateParser.parse to check and convert named formats to the corresponding token format before parsing date.

fix for #1249
docs(datepicker/timepicker): add modelDateFormat/modelTimeFormat description to docs
test(karma): setup SauceLabs testing
fix(tooltip): fix undefined element when triggering multiple times in fast sequence

Clicking multiple times fast on the dropdown button in docs was causing an exception because the element references were being cleaned up in 'hide' animation callback. When the show/hide calls were executed in specific timming, the 'hide' callback was being run after calling 'show' which caused the $isShown flag to be true but the element to be destroyed.

By calling 'destroyTipElement' only in 'show' before creating a new one, we avoid this issue with no noticable impact on allocated resources.