Topic/subprocess

Hi! This is an early draft of a type that represents system processes. This PR is meant to gather comments about the current implementation and suggestions for a improved implementation.

In it's current form, a `Subprocess` contains the three `Process`es `input`, `output`, and `error` which are the standard streams of the underlying system process. It's companion has methods to create `Process[Task, Subprocess[R, W]]` values that when run will actually spawn a system process, emit a corresponding `Subprocess`, and closes the system process and it's streams when it halts. The basic input, output, and error `Process`es are the ones that write and read `Array[Byte]`. There is also `createLineProcess` which returns a `Process[Task, Subprocess[String, String]]` which emits a line based `Subprocess` where the ouput streams will emit only whole lines. The tests show how such processes can be used with programs like `echo` and `bc`.

`Subprocess.scala` also contains a list of items I want to work on next. Any additions to this list are more than welcome!