Expanding content fix

Handles expanding content by switching body height to 'auto' after transition. Tightens control on timing to make sure things happen in the right order.

Also adds speed prop to calculate transition duration based on content height. This provides consistent feel no matter how long or short the collapsible is.

Before merging pull request, there's a few other things I'd like to try:

+ [x] Fallback for browsers that don't support transitionEnd.
+ [ ] ~~Find "The React Way": Try setting state and then responding to all state changes in ComponentDidUpdate, instead of daisy chaining methods together to move through different states.~~
+ [ ] ~~Handle toggle to cancel opening or closing states so that close can occur in the middle of open and vice versa.~~