Changed Failed to be a SystemMessage

 - Moved system messages to their own package.
 - All queueing operations are now hidden behind a SystemMessageList value class
 - Introduced dual SystemMessageList types to encode the ordering in the type.
   - Protects against accidentally missed reverse calls or accidentally reversed lists
   - Makes ordering expectations by fields/parameters explicit
 - Fixed serialization tests
 - Fixes to logging in HierarchyStressSpec
Fixes after merge
Minor fix to SupervisorHierarchySpec to ignore Terminated from old child
Merge pull request #1239 from drewhk/wip-2299-failed-sysmsg-drewhk

Made Failed a SystemMessage