Added matplotlib to the dependency list

Fixed small typo in dependencies
Cleaned up the database driver.

- The SQLDatabase class now uses a context manager for mysql access.
- Most of the error handling is done by the context manager now
- Optimized several methods that returned a list into returning a generator
- Optimized return_matches to use an IN query instead.
- Other small fixes.
Merge remote-tracking branch 'wessie/master'