Multiple changes and fixes

- reworked ClientPool.balanceEdges
- max/min neighbours is now Int instead of Word to prevent underflows
- Server forks on new connection instead of forking and waiting for the
  new fork (sequential concurrency, eh)
Split Types.hs in submodules
-W cleanup
doc
Fix missing imports
Factor out output thread so node pool can print uninterleaved
~> instead of 'for'
Important fix: forgot starting client thread

MainBootstrapServer forgot launching the printer thread, as a result the
printing queue filled up and every print action retried indefinitely
Rewrite creation of output thread to avoid previous bug

The output thread now returns the queue to itself now, instead of
requiring external creation. Because of this, it is now impossible to
forget starting it, and sending messages to an unterminated channel.
Refactoring
Make worker return ServerResponse
Add fast build type
Multiple changes

- 'Error' ServerResponses now have a describing String field
- isAllowed neighbour checking refactored
- Client launching in startHandshakeH refactored
Amoeba typography