ignore vim swap files
refactored the subprocess execution into it's own module with tests
refactored the ProcessInput plugin to call out to the CommandChain
refactored where message packs are created and injected into the router
cleaned up plugin restart code
cleaned up configuration code to use an ordered list of structs for commands
removed calls to panic()
added documentation for ProcessInput plugin
added special case handling for io.EOF and "bad file descriptor" errors when reading from subprocess StdoutPipe()