Modified eigenroutines to use packed storage

Since all our matrices are Hermitian, we only need either the
upper or lower triangle. Since the LAPACK routines destroy their
input array, one makes a copy. Copying a contiguous array is
more efficient than copying a noncontiguous triangle from an
N-by-N array.