Add new MythSystem. Rename old MythSystem to MythSystemLegacy.

This commit creates a new simplifed and less ambiguous MythSystem API.
The old MythSystem has been renamed MythSystemLegacy and provides
the current implementation for the new MythSystem.

The next steps are:
   Complete unit tests for new MythSystem,
     fixing bugs as they are found & enhancing MythSystemLegacy as necessary.
   Port code over to the new MythSystem interface.
   Get a windows buildbot running.
   Eliminate MythSystemLegacy unit tests.
   Refactor MythSystemLegacy to support only the new interface.
   Eliminate any unneccesary abstractions.
Port existing MythSystem tests to the new interface.
Close stdin after write in MythSystemLegacy.

We only write to the program whatever has been sent in via Write()
prior to calling Run(), but we never close the pipe. This is what
was causing the stdin unit test for MythSystemLegacy to fail.
Use proper rpath syntax on OSX.
Add some copyright headers where missing.
Add more MythSystem unit tests.
Eliminate GetSignal() from new MythSystem.

The ability to query the signal that killed a program is not part of POSIX,
so we can't even depend on it on all unix systems. GetExitCode() will now
return -1 if a program was killed by a signal, -2 if it is still uncollected
and 0..255 if the program exited normally, so GetSignal() is unnecessary as
a call if all it tells us is whether a signal killed the program.
Eliminate dead MythSystem flag kMSBuffered.

IO is always buffered.
Add more MythSystem unit tests.
Add annotations to three flags to eliminate if possible.
Eliminate unused kMSInUi MythSystem mask
Eliminate unused kMSSetPGID MythSystem mask
Merge branch 'devel/mythsystem'
Update ABI version for MythSystem changes.