cb imperative searn working
imperative searn should be fully functional, beginning to remove original searn
imperative searn gives essentially same outputs as normal searn but faster -- removing normal searn
removed old version of searn, renamed imperative searn to just be searn
incorporated john's recent changes
synced with searn in Hal branch