Wrap every DOM node in a Composite Component

...unless they already have a wrapper. Also, add tagName to every wrapper.

This ensures that refs are consistent. They always look like composite
components. This effectively hides the internal implementation details of
real DOM components since you can no longer get a ref to one.

In the future we might want to drop this wrapper and have refs refer
directly to the DOM node.

I currently use a hacky way of auto-wrapping inside of ReactNativeComponent
so that any given string can be wrapped. Better suggestions are welcome.
Yea, because the div is wrapped in a composite, this actually causes a bunch of extra calls to guards for things that are on the composite (such as getDOMNode).

This is only testing the auto-binding/guarding (which will likely be killed anyway) so we can do that by just constructing an instance of the class. No need to render anything. This is part of the class contract now and not the composite, will move all tests to more appropriate files later.