Fix hidden.bs.tooltip and shown.bs.tooltip events firing too early in tooltip.js

* events fire only after the CSS animation is completed
* this fixes also events in popover.js (as it inherits from tooltip.js)
don't create new Tooltip/Popover objects just to destroy them immediately
Add 'collapse' class back after expanding
Only preventDefault on click on [data-toggle="modal"] when the element is a link

In it's current state Bootstrap always prevents the default action for a click
event on `[data-toggle="modal"]` elements
(see https://github.com/twbs/bootstrap/blob/master/js/modal.js#L233).
Instead this should only happen when the element is a link.
Scrollspy acting up when targets are hidden

If elements are hidden using `display: none;` which are targets mapped by scrollspy, the plugin might select an incorrect or no menu item.

Checking if the target is visible solved this.
Update affix properly on scrollspy speedy scroll to top of page #11310

Fix scrollspy.js so as affix is updated properly when user scrolls fast
to top of page.

A fix for issue #11310.
Clear timeout on destroy.

Clears the internal timeout on destroy so that hanging timers are not fired.
Allow listbox AIRA role on dropdown component.
fixes #11788 - focusin focusout instead of focus/blur
Merge branch 'master' of github.com:twbs/bootstrap
Replace UTF-8 characters in s3_cache.py with ASCII characters
Fix wrong indent in .jscs.json
Merge branch 'tooltip-events-fix' of git://github.com/lukaszfiszer/bootstrap into lukaszfiszer-tooltip-events-fix

Conflicts:
	js/tooltip.js
build js
fixes #10675
Add docs-assets/css/docs.css to csslint too.
README.md: switch to the shields.io dependency badges theme.
Update dependencies.
Merge pull request #12020 from XhmikosR/package

Update dependencies.
Merge pull request #12019 from XhmikosR/badge

Change david-dm theme to make README badges uniform