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
The intention was to assert that creating and inserting the value into the table were successful. However, I mixed up ``QSqlQuery.exec()`` and ``QSqlQuery()``. The exec returns a boolean, and the QSqlQuery function does not return anything. I have added checks to make sure that the functions work correctly.

The new checks will return false if the queries fail to execute. This may be redudant since the test would fail if there was an issue with the database itself or permissions were set such that tables could not be dropped.