FIXED: A data view edited in a table view was duplicated after a reload.

Previously in CPTableTView, a view being edited was not cached when unloaded, for example when made invisible after scrolling or when calling -reloadData.
This situation was causing a duplicated view to be added at the same place when the data view was loaded again.
After this commit, edited data views are cached and resign their first responder status just before they are added to the queue because they can be reused at another place.

Test: Added a "reload data" button in ViewBasedCib example.
Fixed ArrayController failed to recognize row 0 as the insert location

The logic is wrong in the test for last selection since it can be 0
and if there is no selection, [_selectionIndexes lastIndex] returns -1

Fixes #1723
added in the xib that I modified for testing.
Fixed: more precise array controller insert index test.

Refs #1856.
Merge branch 'pr-1858'