trainbust householder functionalized

for the top at least - will now attempt to have bottom functionalized
as well.
schurAd was also copied in prep
moved all matrix computations from trainbust

They're all in internal functions now, so should be way easier to
write derivatives for. The larger program is now just the logic
(which is ugly...).

Furthermore, BUG!!! pushing bulges up from the bottom, the shifts
do what we want (eigenvalue shifts produce zeros). When pushing
stuff towards the bottom, this is no longer true. damn.
fixed bad bug, lost good performance

turns out there was in indexing error being washed
out with >10 shifts.
It is now fixed, and everything is appropriately functionalized,
with indexing slightly less convoluted now.

Unfortunately, using eigenvalues as shifts no longer produces
zeros in the spikes from any direction.
I broke the damn spikes... (but its still similar to the original
matrix)
Fixed off by 1 error

Now accounts for fill in when forming polynomials.
So pushing from the bottom with eval shifts now yields zeros.
Unfortunately, pushing from top still fails to create zeros.
Reorganized, fixed/tested trainbust and hessen

trainBust now works - next step is to implement derivatives
hessen now allows for the option of forming a hessenberg matrix
by eliminating left to right OR bottom to top (affects how trainbust
works)