jckarter/clay — pull request #344 by stepancheg (2012-08-18 16:42:01+00:00)
Title: os.error, io.error: fix printing of exceptions

Make io, os exception printing independent of module import order.
Basically, cyclic dependecy between `printer` and `io.errors` modules
is broken.

* printer protocols (`printTo`, `printReprTo`) moved to `printer.protocols`
* stream protocols moved to `io.streams.protocols` module
* printer implementations for basic types moved to `printer.types`

So now:

* `printer.protocols` and `io.streams.protocols` import nothing
* `printer.types` imports `printer.protocols` and `io.streams.protocols`
* `io.errors` imports `printer.protocols` and does not import `printer`
* `printer` imports `io.streams` after `printer.types`

Test is included.