PointVisualizer performance improvements

These are some low-hanging performance improvements for `PointVisualizer`. In the long run, we might want to take a different approach altogether, but these changes help some use cases that were previously impossible or extremely slow.

1. Round to nearest pixel size, which has no visual change but stops us from producing thousands of usless canvases when using a sampled pixel size.
2. Fix a typo that was preventing proper caching when using outline colors.
3. Fix bad variable declaration in `EntityData` helper class.
4. Don't re-evaluate non-trivial constant values.
5. Add a fast-path for non-outlined points, which scales a larger texture instead of switching images.

While this code is all covered by the test, I put up this gist to stress test stuff in Sandcastle: 
https://gist.github.com/mramato/305e37bc35b7c2dbe192 It actually runs out of memory or locks up in master but works in this branch.