Fix minor bugs and recursive inconsistencies.

I'm not piping the redo script's output to the tmp file, so we can
observe the verbosity of the sh command, and now recursive redo
hierarchies build and get cached correctly.
Fix nested directory and garbage files problems.

This finishes getting us on par with the haskell implementation and
closes #3. Now we may start implementing fun stuff.

I'm working on another project, which is a BDD testing framework called
bed (https://github.com/yamadapc/bed). I think it'd be nice to test it
for real in this project. I really do want to have neatly organized
tests, which aren't that dependable on hand-rolled control-flow and
assert statements.