unit test and refactor database.py

Updates to ``tests/framework/test_database.py`` and ``framework/database.py``.

- Replaced ``test_database.py`` ``unittest`` references with ``pytest`` references
- Removed test methods that checked the return type of database functions
- Added test methods that checked the return values of database functions
- Modified database functions to handle python strings properly
- Added bound values to the add_presentation and update_presentation database functions.
- Removed dummy record inserted by default.

Related gh484
Some of the models use singleton or singleton-like conventions in the database class. For instance:
```
def test_get_presentations_model(db, presentation1):
    """Assert that a presentations model can be retrieved from the database"""
    empty_presentations_model = db.get_presentations_model()
    assert empty_presentations_model.rowCount() == 0
```

At the top of this function causes it to fail. Since the next call to ``get_presentations_model`` returns the same empty model.

Perhaps this means I should revisit how I am testing the models and their contents. Or remove the models for now.