Optimised symmetry operation application

Rather than using explicit matrix multiplication for applying
symmetry operations, we permute the mesh-point elements using
array-valued-index notation, and then multiply the elements by
either +1 or -1.