ignore profiling output files.
performance improvements.

pass constant references instead of copy-constructed values.  but
the biggest win came from using a std::vector instead of
implementing its functionality manually.
switch normals and triangles to a vector.

instead of manually implementing a copy.  improves runtime by
almost 40%.