Better search, storage backends, settings, cleanup/comments galore

- Added a ton of comments/docstrings to functions (more to come as I
refactor)
- Cleaned a lot of stuff up, made the code flow more streamlined and
simple
- Added settings in a json (with comments!) format. Lots of options for
awesomeness
- Redesigned the way TPB search works, allowing for a simpleish ranking
system on torrents. This turns out to work really well, and allows users
to refine searches based on a set of terms (e.g. give torrents with 720p
in the name a higher chance of being chosen)
- Renamed .json() to .dict() because thats what it does (derp)
- Major cleanup in the database models, they need the fields
organized/redone next
- Added storage backends which allow the user different ways to store
files. Backends have a lot of control over files, with the DB just
interfacing with them to organize files and track them. Backends can
store files anywhere, take any paramters, and even move files to certain
locations when they are requested by the database.
- Fix issue with search-info div not hiding when you added a search
result to your library
- Renamed status to prog to better suit what it is
- Fixed issue with episodes that did not have an airdate trying to
display an airdate
- Added brief TODO file for tracking some wants/needs