Improved speed, searching, error handling, and DJprefs UX.

Re-written majority of code for improved speed and error-handling to
help DJ Pedro fill playlists and provide feedback when he finds fewer
similar artists in the iTunes Library. Improved soft-search handling in
Last.fm requests (DJ Pedro should be able to find artists at Last.fm
even with slight errors in user library naming conventions). Huge
improvement to the UX of the preferences pane.