LooseFormatter provides more readable, but still compact, edn printing

This style of formatting is inspired by  Mark Derricutt's pull request
https://github.com/talios/edn-java/commit/126f2c4ccb03b365b5fda1c1f3a2564c3eaaef89
though the implementation differs.

The implementation is written to use only the public API of Printers
(despite being in the same package), thus serving as an excellent
argument for rethinking the design of the API to better support
composition and extension. In this particular case, it would have been
very helpful indeed if the various writeXxxFn() methods were public.