new exercise: paasio

For issue #21

The tests don't actually mandate the interface design. Although I wonder if its a good idea for the exercises to explicitly provide the interfaces to be implemented.

Honestly the tests are not super solid. But I won't have a lot of time during the week to polish them up. The main thing thats missing is a test that errors produced by underlying `io.Writer`/`io.Reader` types are returned as errors of the implemented writers/readers. Not too hard to do but it will take a little more time.

I tried the tests with an unsafe implementation and it failed when the tests were run multithreaded. There is a test ensuring they are run with multiple threads.