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