#11 Began working on refactoring the gesture recognizer tests to be less interdependant

There are multiple nested describe blocks, each with beforeEach blocks setting up an configuring additional mock objects. Its now at the point where these tests are no longer clear and hard to maintain. Refactoring
#11 Started moving some of the more 'global' dependencies in the gesture tests to the local  tests
#11 Continued refactoring gesture coordinator tests to be more readable and less dependent of implicit beforEach setup
#24 #11 Recognised flaw in design, wrote out some dev notes and decided how to change the design going forward
#24 Started changing coordinator to have a single drag data source - broken all of tests
#11 Started removing redudant tests. We don't need to test what happens if the dragDataSource is nil because the language defines this behaviour for us (returns NO for BOOl methods). Its redundant to test this
#11 Started moving out of the heavily-nested describe block strucuture for the gesture coordinator
#11 Fixed failing dtor test
#11 Migrated describe block for different gesture recognizer stop states
#11 Added fixture for implementation of the I3Collection

According the OCMock docs, protocol mocks work in the same way as class mocks and therefore have the same limitations when it comes to mocking the same protcol multiple times at once. We've worked around that my partially mocking an instance of a class that implements that protocol. I'm not 100% sure whether partially mocking 2 instances of the same class as once has the same limitations (the docs seems a bit ambiguous).

Also removed unnecessary property in the I3TableView
#11 Uncomments drop tests now pass
#11 Ensured that the collection fixture implements that correct methods and refactored rearrange tests to pass. Note that now, the collection for the 'stopping a valid drop' tests is set up with a draggingItemView
#11 Migrated half of the exchange drop tests
#11 Finished migrating exchange tests - going to backward test them now to see if they break
#11 Passed exchange tests after a bit of backwards testing
#11 Finished migrating the dragging and stopping invalid drag tests to their own un-nested describe blocks
#11 Moved all the heavily redundant test setup code to a top-level describe block again.

This time we've ensured that only mocked dependencies that are absolutely required across all of the drag / drop tests are
set up in the top level describe block. Before, there were all sorts of dependencies that were stubbed, restubbed, overwritten
and dependent on the class implementation. Now we have cleaner subsets of drag / drop tests
Trimmed trailing new lines in gesture coordinator test file
#11 Fixed rearrange example case - now rearrange edge cases that cased crash before have been dealt with