Optimize vtkPolyData::GetCellEdgeNeighbors.

Rather than search the cells containing pt1 for those
containing p2, just find the intersection of cells containing
p1 and p2. This eliminates the expensive calls to GetCellPoints,
and replaces the O(c1*s) algorithm with O(c1*c2) (worst case
scenario, c1=cells containing p1, c2=cells containing p2,
s=size of cells).

If we could sort the cells in CellLinks, this could be improved
further to O(c1+c2) (see std::set_intersection). Unfortunately,
doing so breaks vtkDecimatePro in terrible and strange ways.

Change-Id: Ieea59c5d69be4bea3c10a708f7780bc2e59636b3
Merge topic 'get-cell-edge-neighbors-performance' into master

b52d74e5 Optimize vtkPolyData::GetCellEdgeNeighbors.