Improve radar rendering performance

This introduces a CellEntryChanged event on CellLayer, and uses this to cut out most of the heavy looping from the radar updates.  These events will also be used by the ingame map editor, and should help significantly with our shroud rendering performance.

The old radar code split the update over 12 ticks, with only three of these doing actual work.  This is no longer necessary, which gives us a much smoother radar view.

I verified that this doesn't regress performance by timing `RadarWidget.Tick` over 1000 ticks on the biggest and smallest maps that I could find:
![histogram](https://cloud.githubusercontent.com/assets/167819/5260885/c092c220-7a78-11e4-9abb-26d9a4f7cd72.png)

I wanted to avoid running the `Map.MapToCell(Shape, new CPos(u, v))` in the case where a value is changed by the map position indexer when there is no bound actions.  Most code interacts via the CPos indexer though, so this may not win us much in the real world.