Sorting Improvements

* Merged updates through v0.24
* New SearchResult API
* Better result sorting using Ratcliff-Obershelp pattern recognition (via difflib)
* Added logging capabilities so the program doesn't spam the console as much while it's running

The changes to result sorting are the result of an API change from using dictionaries to hold search results to using objects in the interest of uniformity. I've updated the existing scrapers to use the new API, but it's not documented anywhere yet so let me know if you have any questions about it.