Hopefully a fix for #12364

* register the callback before invoking the toggling
* listen for `hidden` instead of `hide`
* account for the possibility of the associated `show` event being preventDefault-ed

Adds relevant unit tests.
Tweak JSHint and JSCS checks.

Be more consistent across the whole codebase.

Also, make use of JSHint's 2.5.1 `extends` and `qunit` options. This way we set our basis options in js/.jshintrc and override the rest.
Comply to the new style.
carousel.js: remove unneeded variable assignment.

`slideIndex` is assigned to the same value a few lines above.
Minor style tweaks.
Run `grunt`.
Merge pull request #13627 from twbs/maybe-fix-12364

Hopefully fixes trigger focus restoration on modal close
Merge pull request #13388 from twbs/xhmikosr-js-style

Improve JS style
add failing test for #13268
put the tooltips into the DOM in the tooltip unit tests
don't show tooltips/popovers whose element isn't in the DOM; fixes #13268
Merge pull request #13752 from twbs/fix-13268

Proposed fix for #13268
there is no need for this.offsets and this.targets to be jQuery objects
no need to check for href attribute on the scrollable element
removing this.$element as it is a superfluous copy of this.$scrollElement
refactor scrollspy refresh method

Closes #13702 by merging a rebased version of it.
Merge branch 'mikegreiling-scrollspy-update'