Add `reactComponentExpect#toBeComponentOfType`

This adds a `toBeComponentOfType` method to `reactComponentExpect`. Now that we are injecting composite native components, `toBeDOMComponentWithTag` will not suffice and should be deprecated.
Allow accessing siblings by ref

This makes it possible to write a wider range of components without
depending on internal implementations.
Consolidate ReactDOMNodeCache and getDOMNodeID into ReactID.

When we move away from using the "id" attribute to identify
React-generated elements, we will need the cache (formerly
ReactDOMNodeCache) to be tied much more closely to the code that looks
elements up by ID (getDOMNodeID) and sets element IDs, since the magic of
document.getElementById will no longer be available.

The priming functions are going to come in handy when we create new DOM
fragments in mountComponent.

For backwards compatibility, the ReactDOMNodeCache and getDOMNodeID
modules still exist, but they are implemented entirely in terms of
functions exported from ReactID.
Replace uses of ReactDOMNodeCache and getDOMNodeID with ReactID.

Also removed some unnecessary calls to `document.getElementById`, which
will eventually cease to work for React-specific IDs.

This clears the way for the deprecation of `ReactDOMNodeCache` and
`getDOMNodeID`.
Use ReactID.{get,set}ID instead of manipulating .id property directly.

Another step in the plan to centralize control of React-specific identifers.