Remove old code. Adds Equality check in -setDataView:
Fixed: data views were not reloaded after a CPTableColumn setDataView:

Cell-based table views with no identifier set for the table column:
Before this commit, the caching system was asking for a view identified
by the tableColumn UID. If the table column data view was changed
externaly, the previoulsy cached data views were loaded instead of the
new ones. The views are now identified by the -dataview UID.

Test: AppKit/TableTest -testLayout were a custom data view is set.
Fixed: in some circumstances, table views binded with the content binding were not correctly reloading the data.

Test: AppKit/WithOrWithoutbinding
Fixed: The data views were not loaded immediately

When reloading the table view, the actual loading (-load) is defered
until layout is needed (generally in the next run loop). This is an
advantage because it minimize reloads but in some case it is necessary
to force a reload, for example when we need to access data views, or
manually edit a view, or when we explicitely ask for a reload.
This commit adds _reloadDataViewsImmediately and make use of it when
necessary.

Tests: AppKit/CPTableViewTest -> -testEditCell
Fixed: CPTableViewTest: -deselectAll should send 1 CPtableViewSelectionDidChangeNotification, not 2.

Checked in cocoa.
Moved a failing test to the end of the method so it does not shadow other tests.
Simplified -numberOfRows

Added -_numberOfRows that computes the new number of rows. Removed the
nil check.

All tests in AppKit/CPTableViewTest are now passing with success.