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