feat(datepicker, timepicker, select): CSS icons customization

Add possibility to customize CSS classes for top/bottom/left/right arrow icons used in datepicker and timepicker and checkmark icon used in select
feat(dropdown): add 'target' attribute to links generated in dropdowns

There are cases when one needs to explicitly specify anchor 'target' attribute, for example to bypass angular router and make actual server request
fix(dimensions): use boxRect for width an height
fix(select): properly propagate the change to the rootScope (fixes #740, fixes #718)
bug(modal, tooltip): fix scope.$root.$$phase error when scope.$root is null

Fixes an issue as outlined in #774 whereby nesting isolated and not isolated scopes sometimes doesn't have scope.$root set.

Closes #774
feat(timepicker): add support for period as a time separator
chore(dimensions): docstring typo

width is equivalent of jQuery's width not height
chore(tooltip): fix typo
feat(tooltip, popover): add target option (from @doverphone, fixes #719)
docs(tooltip, popover): add target option to the docs
feat(timepicker) add support for different format for timepicker model
feat(datepicker, dateparser) add support for separate format for view and model
feat(datepicker): add min/max validity to form error object

Added ability to distinguish beteen "not a date" and min/max validation in form
chore(npm): update devDeps
chore(bower): update deps
chore(release): cut the v2.0.3 release
fix(modal) remove animation class from body element on hide
fix(tooltip): allow to set a two way binding var as title attribute
feat(datepicker): accept disabled-dates

```html
<input bs-datepicker disabled-dates=“unavailableDates”>
```

Expects a sorted array of objects with `start`, `end` date properties.
```js
$scope.unavailableDates = [{start: new Date(2014, 3, 3), end: new Date(2014, 3, 5)}];
```

The array is expected to be immutable (it is not deeply watched).
The array is expected to be sorted.
docs(select): remove debug code