Introduce io::spawn API

This is a wrapper for posix_spawn that sets up pipes for stdin, out, and error.
Use io::spawn for launching tar
Don’t change signal mask in library code

This belongs in main(), where it is already being set.

It might however be necessary to set it when running tests, although none of the tests seems to fail w/o this.
WIP: Filter through command
Implement filter through command

Closes #131