Organize defcomponent macro

This should be a little easier to follow and better organization
Remove bound-methods for now

/cc @scottrabin
Test that protocols satisfied with defcomponent
Implement toString in defcomponent
Whitespace fixes
Add to-attr implementation for Numbers

Numbers should just be stringified.
Merge remote-tracking branch 'loganlinn/master'

Conflicts:
	examples/todomvc/src/todomvc/cljx/core.cljx
	src/cljx/tesseract/component.cljx
	src/cljx/tesseract/dom.cljx
	test/cljs/tesseract/core_test.cljs
	test/cljx/tesseract/dom_test.cljx
Remove exploratory data-tesseract-cursor attribute
Change stored cursor to atom to allow nil reset
Extract environment-specific functionality into separate ns
Extract DOM manipulation functions into their own ns
Include unresolved state queue as part of the environment