Refactor async collection loading to a single loader class

I've changed to a unified `AsyncTaskLoader` approach for loading the collection. This has the advantage that it is aware of the activity / fragment lifecycle, so it's easier to avoid bugs, not to mention reducing  code duplication. The main motivation for this was fixing [Issue 1632](https://code.google.com/p/ankidroid/issues/detail?id=1632) -- hopefully it hasn't introduced too many new issues.

There's a new class in `com.ichi2.async` called `CollectionLoader` which replaces the old `AsyncTask`code. `AnkiActivity` has been extended to take care of most of loading stuff -- and all activities which extend it just need to call `loadCollection()` in their `onCreate()` methods, and optionally implement a method `onCollectionLoaded()` which will be called back when the collection is loaded. The collection should be accessed via the new method `AnkiActivity.getCol()` instead of `AnkiDroidApp.getCol()`.

Since we currently only have one Fragment, that has it's own implementation which somewhat duplicates the one in `AnkiActivity` -- we can look at refactoring that further in the future.

I have also removed a bunch of unused stuff that was causing warnings, and fixed deprecated method warnings for the animations. Sorry that it's all in a single commit.
actually I think we still need to check if `colIsOpen()` and then invalidate after collection has been loaded as `onCreateOptionsMenu(Menu menu)` can be called before the collection is loaded