process: Consolidate to a single printer

This commit simplifies the process by which Honcho relays process output
to another place. Previously, every Process object had its own printer
instance, which knew what colour and name to print for the process. Now,
there is just one Printer instance, which needs to know only the width
of the prefix column, and each line printed by a process is relayed to
the printer with colour and name information.
process: Use length of reported process name

The Process constructor might munge the process name (and indeed does,
in our case, when the "quiet" kwarg is True) so use the reported name
after the constructor has been run, and not the passed name.
process: Add tests for line ordering and colouring
command: Ensure output encoding is UTF-8

Thanks to @ratazzi for the report and proposed fix.

Closes #76.
Major rework of Process, ProcessManager

This is a large rework of the core of Honcho, namely the ProcessManager
class, which in this commit is renamed to Manager.

The motivations for this set of changes are:

1. In general, test coverage on Honcho is pretty poor, which makes
   making changes to the core risky. If the core of Honcho were
   beautifully designed and bug-free, this wouldn't be an issue, but...

2. ...there are a number of nasty bugs in Honcho which relate either to
   concurrency issues (#61) or inappropriate handling of child processes
   (#70, #39, #32). At least some of these bugs will need some quite
   substantial reworking of the core to fix.

In particular, most of the test coverage comes from some rather nasty
integration tests. Making any changes to Honcho's core require updating
almost all the integration tests, and I want to get rid of them, but I'm
not comfortable getting rid of them until we have sensible unit test
coverage.

So. This commit pulls apart `honcho.process` into two modules,
`honcho.process` and `honcho.manager`, each with a start at some decent
unit tests.

`honcho.process` contains the Process class, which now handles spinning
up a child process and forwarding lifecycle events and output from that
process to a queue.

`honcho.manager` contains the Manager class, which has an almost
identical external API, but dramatically reworked internals. In
particular, its hardcoded dependency on Process and Printer has been
broken so that it can be more effectively tested. The division of
responsibilities between Printer and Manager should now be clearer.

The test coverage on Manager is still not what it should be, due at
least partly to the difficulty of testing such a fundamentally parallel
object. There is, however, the start of a reusable test harness in
test_manager.py, which should make life easier for a range of tests.

Lastly, most communication with the outside world (retrieval of the
current time, os.kill, etc.) from Process or Manager is now mediated
through `honcho.environ.Env` to make it easier to replace these
functions with fakes when testing.

This commit should fix #32, #59, #61 (and #62), #66, and #76.
test: monkeypatch multiprocessing.Process for coverage

This commit adds a nasty monkeypatch, stolen from

    http://blog.schettino72.net/posts/python-code-coverage-multiprocessing.html

which allows Ned Batchelder's coverage library to track code execution
across forked processes (i.e. multiprocessing.Process instances) when
tests are running.

This allows us to get realistic coverage reports for
honcho.test.unit.test_manager, which runs some code in subprocesses.