Improve performance by using string interning and dropping indices
Improve performance by using string interning and dropping indices

After storing a few dozen full system backups on the file system things started
to get slow again. By then the `datastore.db` file was about 2,9 GB and the
`metastore.sqlite3` file was about that big as well but growing at a rapid
rate... After some inspection I found two reasons it was growing so quickly:

 1. A while ago I added several indices to the SQLite3 database hoping to
    improve performance, but this was back when the data blocks were still
    stored using SQLite. Then I switched to storing the data blocks in
    Berkeley DB but I neglected to remove the SQLite database indices.
    This made the indices dead weight which is why I've removed them.

 2. My file system contained more than 500 MB of path segment strings while
    only about 5 MB was unique! Therefor I've added string interning of path
    segments which makes the code a bit more complicated but can save
    considerable disk space. I guess I might also have fixed a bug by
    switching the path segment string type from TEXT to BLOB?

With these changes my `metastore.sqlite3` file shrunk to 467 MB which makes
SQLite less of a bottleneck for the file system, at least until I start using
it more intensively... :-\

xolox/dedupfs,xolox/dedupfs,xolox/dedupfs