Tests for the SqlAlchemyWrapper

For #6
@willkg r?
I was just looking at the `__init__` code and it's pretty weird:

```
    def __init__(self, config):
        """
        Create engine and session factory from config values.
        """
        try:
            self.engine = create_engine(config['engine'])
            self.sessionFactory = sessionmaker(self.engine)
            Base.metadata.create_all(self.engine)
        except KeyError, e:
            raise EngineNotFoundError
```

This requires a config and it's a dict, but if there's no "engine", then it kicks up a KeyError. I thought we had a default for the engine to use sqlite and save a .db file. Where'd that code go?

Also, this uses the old-style exception handling. That's gone in Python 3 and deprecated in previous versions. You should be using `as` like this:

```
try:
    ...
except KeyError as e:
    ...
```

Also also, I'd avoid single-letter variable names.

Why mention all that here? Because this test shows that the code it's testing is curious. Once we change the code, then we can redo this test.