feat(tooltip): add ability to auto position tooltip

Add ability for tooltip (and any dependent directives) to be auto
positioned.  Placement option has been enhanced to look for `auto`.  If
present, tooltip will try to position itself in viewport.  A preferred
placement can also be specified by appending desired placement to auto.
Tested against Win 7 Chrome, Firefox, IE 9-11.
refactor(tooltip): update auto placement to match Bootstrap

Refactored auto placement to match Bootstrap implementation.  Updated
documents to match Bootstrap documentation.
refactor(tooltip): combine autoplace ifs and chain if statements together
fix(tooltip): restore space between element and tooltip arrow

Tooltips positioned top and left lost their gap due to the class not
being applied before getting the offsetHeight and offsetWidth
fix(datepicker): invalidate manual input value with non-existant day

Datepicker was accepting manually input values with non-existant days, like '31/02/2014', because the javascript Date object would overflow the day value and give back '03-03-2014'. This fix checks the parsed day to see if it matches the input day value, otherwise, it invalidates the input.

Fix for #816
feat(modal): Prevent wheel event on modal backdrop
fix(tooltip): add backdropAnimation to parsed attributes (closes #1327, fixes #1326)
fix(collapse): unregisters collapse toggles/targets when they are destroyed

When the bsCollapseTarget/bsCollapseToggle elements were destroyed, the internal control arrays in bsCollapse were not being updated, which caused invalid index values for current active item.
fix(scrollSpy) destroy scroll event handler