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
@dideler this is what I have added, it is not functioning as desired. In one of the presentations from the rss feed, the room number is empty. When this presentation is passed into the query below (without the ' OR Room is NULL') it fails. Not sure if you have seen this before?
The query should interpret python's empty string as a NULL value. However, it is seeing python's empty string as something that is not null.
```
    def presentation_exists(self, presentation):
        """Checks if there's a presentation with the same Speaker and Title already stored. This is used in testing."""
	# TODO, For some reason when the python value '' is passed into the QSqlQuery, it is not seen as ''. In SQL '' is    
        # NULL. So the query looks for a row with a magical value in it that can never actually exist...                     
        if presentation.room == '':
            presentation.room = None
	result = QtSql.QSqlQuery('''                                                                                         
            SELECT *                                                                                                         
            FROM presentations                                                                                               
            WHERE Title="{0}" AND Speaker="{1}" AND Description="{2}" AND Category="{3}" AND                                 
                  Event="{4}" AND (Room="{5}" OR Room is NULL) AND Date="{6}" AND StartTime="{7}" AND EndTime="{8}"          
        '''.format(
            presentation.title, presentation.speaker, presentation.description, presentation.category,
            presentation.event, presentation.room, presentation.date, presentation.startTime,
            presentation.endTime
        ))
        if result.next():
            return True
        else:
            return False
```