More updates to Ding performance.  I had to back away from the
BirdsEyeView timer.  There are too many m_lock regions all over the
place to allow us to get any parallelization.  I think we need to
rethink the birds eye view implementation to not use the rest of ding
so heavily, in particular the RTree.

Other changes here are to try to rationalize selection.  We were
handling selection two ways simultaneously, through a visual property
and with a RowsSetListener.  This caused all sorts of strange
interactions.  Now, if the visual property is set, we record the visual
property, but assume that our listener is going to do the actual
selection.  This avoids a number of thread conflicts.  I also changed
things to have the birds eye view monitor the state of the drawEdges
flag so we can redraw the edges in the birds eye view as necessary.

Change-Id: I0231c782c1aa857b34fed3b34605aac021e85476