Prioritised process loop exception handling improvements

There were previously numerous places in which the code evaluated
during `precvLoop` could be terminated by an asynchronous exception,
without attempting to handle exits properly or even call the server's
shutdown handler. Fixing this makes the already messy priority code
even more complex, but does seem to have done the trick.

[ci skip]
DPP-97 #resolve Fixed - Supervisor Shutdown Policies

Supervisors must shut down all their children before exiting
themselves. Previously we shut them down in parallel, yet many of our
restart modes are indicative of inter-relationships between sibling
children. The addition of a `ShutdownMode` provides a way to switch
to a synchronous shutdown sequence and to control the traversal (i.e.,
direction) used.
Git ignore .cabal-sandbox

[ci skip]
Enforce unique child keys on supervisor start/run
add missing monitor on CreateHandle variant of ChildStart
Merge pull request #74 from BirdseyeSoftware/development

Add missing monitor on CreateHandle variant of ChildStart in Supervisor. Thanks Tavis Rudd!
remove potential pattern match failure in favour of more helpful `die message`

initCall and unsafeInitCall in D.P.P.ManagedProcess.Internal.Types
were both vulnerable to pattern match failure when passed an
unresolvable Addressable. It is more helpful to the developer /
debugger to die with `unresolvableMessage addressable`.
s/_resolveOrDie/resolveOrDie/ and move it alongside Resolvable/Routable classes
Cosmetic / Comments
typo s/recieve/receive/
cosmetic refactoring of StarterProcess variants of ToChildStart

Moved helper functions to where clauses. See the discussion on PR #77.
move exported types from C.D.P.P.Supervisor to .Types

This is in preparation for some changes to the handling of the
StarterProcess variants of ToChildStart. See discussion on PR #77.
rm Control.Distributed.Process.Platform.Supervisor.Types from exposed-modules
fix issue dpp-105; NominalDiffTime to Interval

NominalDiffTime converts in terms of seconds, so we need to
multiply by 1,000,000 before rounding to convert to
microseconds
Merge pull request #75 from BirdseyeSoftware/development

Remove potential pattern match failure for more helpful `die msg`
Merge pull request #78 from BirdseyeSoftware/fix-typos

fix typos s/recieve/receive/
fix typo in deleteChild arg names s/spec/childKey/
log each call to Supervisor.tryRestart
deal with -wall unused code warnings in C.D.P.P.Service.Registry

- remove unused import of InitHandler
- remove usused `reason` fn
- comment out unused/unimplemented `dispatch` fn
- mark _unused arg to `handleUnmonitorReq`
linting; rm unused imports