Fixes ArrayIndexOutOfBoundsException when rotating.

I suspect getView() was being called while ProcessRowsTask was running
in background. This could be calling a racing condition where getView()
was called before calculateItemsPerRow() had the chance to finish.

It's now cancelling the task if it is already running to prevent any
inconsistent state. Work in progress.
adds annotations jar