Bugfix (crash and inconsistent onItemMoved)

Hello.
This fixes crashes on my phone (out of bound Exception... adapter getItemId gets called after getCount())
Also : I need onItemMoved to be called even when the user drops it in the same position : 

My use case : When I start dragging, I make some changes to the list (I model a tree)
When the user stops dragging, I need to revert those changes. 
If the onItemEvent isn't fired when the user drops it in the same position, my data is in an inconsistent state.

Also, the developper can check if original position == new position in onItemMoved

Thanks for this library