fix(datepicker): do not stop propagation if typeahead is visible
feat(typeahead): watch ngOptions

keep the typeahead data updated when changed externally
fix(datepicker): fail-safe destroy
feat(typeahead, select): prefix events
feat(select): add buttons to select and deselect all items

add buttons to select and deselect all items will make the select component more usable when filled with many items

the feature is configurable so the old behaviour is maintained by default and no breaking changes are committed
chore(npm): update devDeps
fix(tooltip) fix options.target not being passed as DOMElement to dimensions.position

The error occurs as options.target is validated via `angular.isElement` which requires a valid jQlite/jquery wrapped DOMElement, this gives an error in getPosition() as dimensions.position requires an unwrapped DOMElement.
Added a CustomClass option to Tooltips.

We had a need for custom classes per tootip (i.e. delete tootips to have a red background etc.) - added a quick-fix with a CustomClass option.
fix(datepicker): adds missing iconLeft/iconRight as attributes on directive
fix(typeahead): update values when only one match remains so only one match is shown
fix(tooltip): remain invisible until positioned
chore(datepicker): added missing semicolon to .updateDisabledDates
feat($tooltip, $modal): change options.container to allow an angular.element

This allows the container option of tooltips, modals and other directives that use them to use an angular.element object not just a selector string. Mainly for use when being used inside custom directives and you can't easily use selectors but already have a element object.
feat(dropdown): add open class on parent
feat(typeahead): add freeMode
refactor(typeahead): change freeMode API
chore(release): cut the v2.0.4 release
chore(grunt): drop gruntfile
chore(readme): give info about ngAnimate mock
fix(typeahead): several critical fixes from merged PRs