Added conditional item dragging similar to UITableViewDataSource/Delegate

* New method -canMoveItemAtIndexPath: can be overloaded to prevent items from being dragged
* New method -targetIndexPathForMoveFromItemAtIndexPath:toProposedIndexPath can be overloaded to modify target location during move