Add a new SQLite backend

This is lacking the hacky changes I had to make to the test runners since those changes broke all the other backends.
Don't worry about the boundary conditions. I'll take over that issue and fix all the backends.