[WIP] Sql backend: basic implementation and some tests

Also a few raco refactoring and fixes inline.

@7andrew7 take a gander? To be honest, I kind of / really hate this.
The approach seems totally valid.  Great work.  Obviously, we should chat about how to generalize the fakedb framework.  But, you can commit this stuff it makes life easier.