`DropdownButton` and `SplitButton` refactor

Move common dropdown state logic into `DropdownStateMixin` and simplify
event logic.
Removed transferPropsTo calls in favour of manually passing around
props.
Cleanup unit tests, make sure we are unmounting nodes that bind to the
document.
Added unit tests for `DropdownMenu`
Docs for `DropdownButton` and `SplitButton`

Content and examples based on
http://getbootstrap.com/components/#btn-dropdowns