Rework ConsoleTable to solve error message bug

Error message bug was when the user chose a wrong option, the
return field would not be sent.
move dict_factory into AllSeries

Also do some whitespace cleanups in the module.
Add background flag to osx open

By adding the --background flag to the OSX open command,
the bittorent client will stay in the background when downloading
so it won't pop to the foreground each time a download is
selected.
tv with no args is the same as `tv showmissing' now

Also changed a bunch of ifs to elifs.
Added a tracking table to db

Search results and the chosen file are saved to the tracking table
in the database.  This is for some kind of future data mining.
Merge branch 'data_tracking'
Bug fix: supply a default value to dbdata
Tracking improvements

Tracking now collects a bit more data and has a rudimentary display
method that is only available from the command line via:
`python Tracking.py'

It will probably stay this way until a lot more data is collected
and I can think up some interesting reports to generate.  Maybe create
a 'highest rated' shows by using the seeds count.