Process returns a list of times

This replaces Process.time() with Process.times(), a method which
returns a list of values, rather than a single value. This is to enable
future support for processes which return multiple times.

Issue #5.
Add an exception class for input filter errors

This exception will be thrown by a process encounters an invalid line of
input for a filter.

Issue #5.
Print output results to stderr

This allows users to run the timer and discard the output of the timed
process by piping results to /dev/null.
Catch all exceptions at the top level

We don't want to be dumping stack traces on the user.
If a process fails, return the error code
Record execution time only when not filtering

Issue #5.
Separate decoding and printing of process output
Implement process output filtering

This implements process output filtering. If srtime is invoked with the
-i or --filter arguments, the execution times will be recorded from the
stdout of the process. This allows users to write benchmarks which print
out execution times only for specific subroutines that they are
interested in, rather than measuring the execution time of the entire
program.

Issue #5.