Readdir of the top-level buckets
Mkdir of top-level buckets
Readdir of nested buckets
Reading of keys

We need to keep track of file sizes, and return the right size from
Attr, so the kernel page cache knows there is content there.
Writing of keys
Mkdir of nested buckets
Tests for read/write of keys in nested buckets
Add README
Encode keys into safe filenames
Encoded file names cannot contain a leading dot

This avoids db keys "." and ".." causing trouble.
Remove files and directories
Unify root bucket handling with nested bucket handling

Bolt.Tx now has method Cursor, so we don't need two code paths anymore.

We still need to use an interface to make *bolt.Tx and *bolt.Bucket
interchangeable, and a wrapper with fake Get/Put/Delete methods to
always satisfy code that wants to call those.

Also fix a copy-pasto where dir.go made sure Root implements
HandleReadDirer.
Explicitly forbid creating files at top level

Without this, simple shell usage like `echo foo >bar` gave no error
(because the file was not closed, as far as echo is concerned, and we
only Bolt Put on a FUSE Flush, so the error was triggered too late).