New Trakt.tv Provider

Completely rewrote the Trakt.tv API to be modular and completely independant of the rest of the source code (except for a few config references). Along with this Scrobbling was implemented as well as tracking what the user is watching on Trakt.tv. User can enter Trakt.tv login details in the setting panel.
We also track manually set watched movies/TV Episodes on Trakt.tv.

Along with this a new cache provider and cache backend was implemented (cachev2 and cache_providerv2). They are based on IndexedDB and provide a much more refined, easy to use, abstracted, and straightforward interface to store simple key/value pairs into a persistent database. Take a look at the `cache` instance method of the Trakt API code to get a nice idea of how to implement a simple "wrapper" around other calls if you want to use the cache provider in other providers.