Reduce overdraw by hashing points.

This pull request reduces memory consumption on visualization of very large models by reducing the number of stored points and normals. ASM sends triangulated meshes that have duplicate face vertex coordinates and normals. This improvement hashes the location and normal of a vertex and does a lookup before storing if another vertex has the same location and normal.

@pboyer ptal.
@Benglin I agree that a string comparison like this is going to be very expensive in comparison to just injecting a point.  

It's difficult to write a legal implementation of GetHashCode while still doing approximate point comparisons.  In this case, you'd need to hash based on the location in some spatial partitioning structure.