Rating.py cleanup #2

Cleanup rating.py a bit more.
traktapi class changes

Make use of subclassed exceptions for handling problems, instead of returning data.
Handle testing account differently, call getData directly, and handle errors.
Store if the account is valid in an addon setting, and make use of this instead of testing on startup. Since when account is deemed valid, unless password changes, or you change settings it should never be invalid again.
Move timeout to an optional parameter in __getData
Add setSetting helper in utilities.
fix episode_sync when trying to remove entire show

When trying to remove a full show from trakt, no identifier (tvdb_id) as added to the api call.  It was only added if there was a partial episode removal.
More fixes

Add checks in episode and movie sync for collection/watched lists not being lists, and abort if they're not.
Fix traktRequest to check for data is None explicitly instead of true/false, since an empty list is still false.
Add show specific functions in traktapi.
Fix episode sync, when removing all episode, just remove the show.
Add sqlDateToUnixDate helper function
Fix movie sync to also pass last_played in seen requests.
Fix debug line when testing non-library data

Fix debug line when testing non-library data, didn't have enough variables for string substitution.