test(tooltip): add test for service option 'show'
test(tooltip): add resource allocation tests

Add function countScopes() to the test/helpers.js that allows counting the number of existing scopes.
Add some basic allocation tests to tooltip to check the number of created scopes.
test(datepicker): add resource allocation tests
fix(datepicker): fix scope leak when opening picker multiple times

Prevents creation of scopes each time datepicker is shown by using a new scope for the tipElement in tooltip service, which in the basis for the datepicker. This new scope is destroyed when the tip is hidden, thereby cleaning up resources.
Had to change other tooltip based directives custom event hook-up in show() to use $timeout instead of setTimeout to prevent errors, by delaying code execution inside the $digest cycle.
test(timepicker): add resource allocation tests
test(dropdown): add resource allocation tests
chore: remove unnecessary timeouts to hookup events

Toolip derived directives that use custom show/hide functions were using a timeout to hookup events after calling base show(), which is not necessary.
chore(karma): turn off singleRun karma:server
test(timepicker): trigger focus correctly
fix(dimensions) removing redundant offset calc
fix(timepicker): initial value with ng-required attribute

When using ng-required attribute in timepicker element in Angular 1.3, the element was not passing validation because it was returning a date object from the $formatter. With the new 1.3 pipeline, the $formatter needs to return a string when using an input type="text" element.
chore(release): cut the v2.1.3 release
docs(version): update version
fix: revert removal of unnecessary timeouts to hookup events

The timeouts are needed to hookup the events to prevent event bubbling from being processed imediately. (reverted from commit fe967a8140bb76719ac87312417de1daaaff0220)
fix(datepicker): initial value with ng-required attribute

When using ng-required attribute in datepicker element in Angular 1.3, the element was not passing validation because it was returning a date object from the $formatter. With the new 1.3 pipeline, the $formatter needs to return a string when using an input type="text" element.

Same fix as was done for timepicker (f65fe9ff79c5fa5a3055d4fac82bed1d3bf9f1ca)
fix(datepicker): fix empty value parsing and validation

In AngularJS 1.3, if the $parsers callback returns an 'undefined' value, it causes the ngModelController to invalidate the ngModel and not run the validators. When the input is an empty string, the $parsers callback was changed to return 'null' instead of 'undefined', so we consider an empty string a valid value and allow for other validators to run and check the value.

This means a BREAKING CHANGE from previous versions, because the model value for an empty input is no longer 'undefined' but is now 'null'.
fix(timepicker): fix empty value parsing and validation

In AngularJS 1.3, if the $parsers callback returns an 'undefined' value, it causes the ngModelController to invalidate the ngModel and not run the validators. When the input is an empty string, the $parsers callback was changed to return 'null' instead of 'undefined', so we consider an empty string a valid value and allow for other validators to run and check the value.

This means a BREAKING CHANGE from previous versions, because the model value for an empty input is no longer 'undefined' but is now 'null'.
feat(tab): add bsActivePane attribute to bind active tab pane

Currently the tab directive is using ngModel to bind the active pane index. This causes the tab control to be included in the validation pipeline and when used inside a form, causes the form to be $dirty. (see issue #1233)

This commit deprecates usage of ngModel and adds a replacement bsActivePane attribute with the same functionality, so it should be a matter of replacing ngModel references with bsActivePane.
docs(tab): add bsActivePane helper attribute description
fix(select): fixed missing validation error when deselecting all values (select with required and multiple attributes)