PropTypes clean up

Changes:
* Moved propTypes to utils and renamed to CustomPropTypes so its not confused as a proxy of `React.PropTypes`.
* Update componentClass validator to match PropType signature, it now returns an `Error` if invalid instead of a boolean.
* Added mountable validator, as per #161
* TESTS!