Added findDOMNode, as we move toward deprecating g

Added findDOMNode, as we move toward deprecating getDOMNode
Yea, we should not add more to this base class. I'm moving everything out of this file. There is no such thing as "ReactComponent" base class. They can have fairly arbitrary signatures. As when using the module pattern.

The thing that determines whether something is a "ReactComponent" is the fact that the object is mounted. Therefore this is the right check but it's breaking encapsulation by reaching into the details of another module (ReactInstanceMap).

If it's not already a node (using isNode), check `ReactInstanceMap.has(component)` to see if it's mounted.

It's true that a component may not be fully mounted yet, even though it's in the `ReactInstanceMap` but I would like to remove that divergence so it might be ok to avoid calling `isMounted` and let it error later on instance. I'd like to get rid of `isMounted` too.

An object that is not mounted is just an arbitrary object. It's not technically a `ReactComponent`, however, it might still be valuable to use some heuristic to change the error message depending some duck typing. E.g. if it is has a `render` function. It should not change any other behavior though.