Carousel refactor

This change included general logic cleanup as well as the following
changes:

Fixed issues
* Clear any timers on `componentWillUnmount` or null any async actions
via `this.isMounted` which would cause set states after the component
has been unmounted, resolves #112.
* Prevent default on `next` and `prev` callbacks which stops hashes being
set to the url.
* Clear auto slide interval timer on manual change to stop multiple
timers being set.

Added functionality
* Added `onSlideEnd` prop - useful for queuing state changes.
* Added basic unit tests.
Now possible to provide a renderable as a label to a progress bar.
Merge branch 'mathieumg-progressbar_renderablelabel'
Merge pull request #128 from pieterv/carousel-cleanup

Carousel refactor
ie8: tooltip

domUtil will use jQuery to compute position and offset if jQuery is present.
jQuery can then be a requirement for react-bootstrap + ie8.
Merge pull request #124 from stereosteve/ie8-tooltip

ie8: tooltip