Add directory tree listing, subpathing

This commit adds some basic directory-tree operations, based
on `treant`:

You can define your path hierarchy that you want:

    tree = mcv.dir.tree(
      ('/', [
        ('opt', [
            ('framed', [
                ('bin')]),
            ('mcv', [
                ('bin'),
                ('tests')])])]))

Then you can get the most common operations out of it, e.g.

1. Create all the directories `mktree()`
2. Find a node in the tree, and subpath therefrom `subpath()`