Initial implementation of test

A first pass at `rustbook test`.

I modelled it after `build`, but it seems that when the tests fail, the overall process still works. Any thoughts, @aturon ?