Cleanup macros ns
Refactor defcomponent to return a hashmap since meta data does not work in clojurescript
Remove usage of protocols and records to manage component dispatch
Implement a systems spec for specifying which component functions to call in what order
Enable printing to js console. Add cljs-test as dep.