ENH: Adds mesh data memory layout optimizer
Adds optimizer to the mesh. This algorithm rewires the node order and triangle connectivity to optimize for memory layout. Adds tests for the same. The algorithm starts with a random node and flood-fills in the triangular mesh space adds nodes and elements at every iteration. The iteration ends when the surface is "flooded". The algorithm assumes that the mesh is one topologically connected entity. TODO: Further optimization at each iteration. Extend to other mesh types.