Python code cleanup

The following commits provide an initial cleanup effort of the code to be more Pythonic. Where possible, I've done:

* Use new style classes `class MyClass(object):` over `class MyClass:`
* Use [instance()](http://docs.python.org/2/library/functions.html#isinstance) rather than `type(object) == object2`
* Use tuples when doing string formatting, even when number of string arguments is one
* Use [os.path.join()](http://docs.python.org/2/library/os.path.html#os.path.join) whenever constructing absolute path names from strings
* Use `with open(filename) as f` syntax to ensure opened files are closed after use
* Made Config a dictionary, as it seemed unnecessary to keep it a class
* Added a couple gitignore rules to remove the log, sqlite, and vim swap files from being tracking

I've avoided making changes to plist.py, as the code is external to this project.