Initial commit of isosurface propagation code.

Updated utils.py with necessary stuff to run propagate bits, and started
working on propagation functionality.

Right now we have an implementation of finite-difference gradient and a
not-yet-working implementation of a routine to get an orthonormal basis
on a hypersurface given its normal.
Added pdb to utils includes
Got hypersurface_basis working.
Retooled the finite_gradient function in propagate.

Now instead of differentiating with the standard basis only, it is
capable of differentiating in a different basis.

Specifically, it will differentiate in bases aligned with the
hypersurface.
Can now make any dimension of symm mat from a vector
Can now make any dimension of symm mat from a list
Merged lowD-propagate into remote mirror.
Fixed basis check in gradient
Fixed bug in minor_determinants
Fixed egregious error in finite_gradient.
Removed obsolete test_matrix_params from util
Added a naive propagation seeder to propagate
Added a naive propagation seeder to propagate
Pull remote so I can push.  Not sure what happened.
Renamed naive_seed_matrices to _isosurface
Added spread parameter to random sampling for seed generation
Extended random search with possible sign flips
Described a gotcha in the naive seed docstring
Added the positive definiteness field to util
Vectorized gradient and added hessian to propagate