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
> Keep in mind if we change this behaviour it will affect ALL existing functions that use this.

As far as I can tell, this method isn't used anywhere in the codebase except for in the tests. Which makes me think of [YAGNI](http://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it)--I'm not sure why it exists if it's not being used.

Currently the duplicate check is done at the schema level: `UNIQUE (Speaker, Title) ON CONFLICT IGNORE`

IMO, if a function is called `presentation_exists`, it should check that the passed presentation must exist exactly as it as. If it returns true because it found a presentation that has some fields the same but others different, then that presentation doesn't actually exist and the return value is misleading. Keep in mind that the same talk is often given multiple times by a speaker at different events, and in those cases, the speaker and title would be the same, but the presentation is *not* the same.

If we want a function that checks only the name and speaker, I would prefer a method that makes it clear that's what it searches for. E.g. `presentation_with_speaker_and_title_exists`.