BREAKING CHANGES: Refactor Database to be an abstract base.  Add SQLite support.  Add JavaDocs.