Extend print-method to print SystemMap tersely

System objects tend to be large and unweildy, with a lot of duplicated
elements. Printing them at the REPL is rarely useful. Some systems
contain large objects, such as byte arrays, that can lock up a REPL
for several minutes when you try to print them.

This change extends clojure.core/print-method to SystemMap so that it
prints only a minimal indication of its type.

I considered also printing a list of keys in the system, but even that
could be large and it would be unlike any other printed representation
in Clojure.

As a consequence, SystemMap instances are no longer `read`able.

This behavior can be disabled with `remove-method`.
Add key to error message from `system-using`
Add ex-component? and ex-without-components helpers
Leiningen profiles & alias to test on all Clojure versions
Use :system-key instead of :component-key in errors

This is more accurate, since the key comes from the system, not the
component.

This is a breaking change for code which depended on the exact
structure of the ex-data maps produced by component errors.
Include :system-key in ex-data from try-action

As suggested by aroemers in
https://github.com/stuartsierra/component/pull/8 but using :system-key
as in commit 6de235f371f836a3ec7ca0d5b5443f353c92b884.
Error message: dependency 'of' component, not 'in'
README: change log since 0.2.1
Add tests for error helpers
Prepare for release 0.2.2
Prepare for develoment version 0.2.3-SNAPSHOT
Renaming, porting.
Add node test runner.
All tests pass in clj, all but one in cljs.
Last touches to get everything working under cljs
Readme update
Setting names back to what they should be.
Some clj/cljs differences crept in with recent commits.
Merge branch 'master' of github.com:quile/component

Conflicts:
	project.clj
	src/cljx/com/stuartsierra/component.cljx
	test/cljx/com/stuartsierra/component_test.cljx