OverlayMixin container cleanup

Changes:
* Loosen check on `container` prop so that if an object has a `getDOMNode` method we use it, as per #160.
* Provide a stricter propType check for `container`.
* Provide a default prop for `container` that passes the propType check in all cases.
* TESTS!