chore(build): Use grunt-karma for testing
feat(tabs): Change directive name, add features

* Rename 'tabs' directive to 'tabset', and 'pane' directive to 'tab'.
 The new syntax is more intuitive; The word pane does not obviously
 represent a subset of a tab group. (Closes #186)
* Add 'tab-heading' directive, which is a child of a 'tab'. Allows
HTML in tab headings. (Closes #124)
* Add option for a 'select' attribute callback when a tab is selected.
 (Closes #141)
* Tabs transclude to title elements instead of content elements. Now the
 ordering of tab titles is always correct. (Closes #153)

BREAKING CHANGE: The 'tabs' directive has been renamed to 'tabset', and
 the 'pane' directive has been renamed to 'tab'.

    To migrate your code, follow the example below.

    Before:

    <tabs>
      <pane heading="one">
        First Content
      </pane>
      <pane ng-repeat="apple in basket" heading="{{apple.heading}}">
        {{apple.content}}
      </pane>
    </tabs>

    After:

    <tabset>
      <tab heading="one">
        First Content
      </tab>
      <tab ng-repeat="apple in basket" heading="{{apple.heading}}">
        {{apple.content}}
      </tab>
    </tabset>
fix(tooltip): tooltips will hide on scope.$destroy

When an element on which the tooltip is applied is destroyed (along with
its scope), the tooltip popup will now be closed if it was open.

Also refactored the $locationChangeSuccess binding as well to not waste
a run of `hide()` unless the tooltip was already open, following the
same pattern used in this bug fix.

Closes #410.
fix(dialog): remove dialogOpenClass to get in line with v2.3
feat(datepicker): add datepicker directive

Closes #366
style(modal): Use 'h3' tag in template instead of 'h1'
demo(modal): Use 'h3' tag in template instead of 'h1'
docs(dialog): document dialogFadere option instead of non-existing modalFade option
style(dialog): use double quotes around HTML attribute value
chore(*): normalize line endings

Closes #423
feat(pagination): option for different mode when maxSize

 * Allow user to specify if current page is rotated, moving the left/right
   limit, or page is moving between page groups.
refactor(datepicker): inject dateFilter instead of $filter
feat(tabs): support disabled state
demo(*): fix the link to the ui-router project

Closes #476
feat(tabs): add support for vertical option
fix(carousel): do not allow user to change slide if transitioning
demo(*): remove a dead link
feat(typeahead): support typeahead-on-select callback

Closes #433
refactor(typeahead): avoid string manipulation for DOM elements
fix(typeahead): return focus to the input after selecting a suggestion

Currently focus is lost if you mouse click on the suggestions model instead of using the keyboard. This keeps the focus.