Use the 'at' lens instead of M.lookup

This should make it easier to access and modify entries in maps and
things.
Begin implementing database nonsense

Currently I plan to use persistent for the database stuff. The current
implementation is rudimentary at best and will probably need some work,
but it's an OK starting point.

Some refactoring may be necessary, as everything is pretty tightly
coupled together right now.