Add tools.trace to the mix to better understand recur flow
Convert to more idiomatic code:

  * All def* forms at the top level (since they're side-effecting anyway)
  * If we don't care about vector vs list (just the order), the
       `(reverse (into () (clojure.string/split code #"\s+"))))` is the same as
       `(string/split code #"\s+")`
  * `(rest (rest ...))` => `(drop 2 ...)`
  * `(nth ... 1)` => `(second ...)`
  * `(+ ... 1)` => `(inc ...)`
  * `(- ... 1)` => `(dec ...)`
  * Moved `code` argument to final position in `sub`, allows `wordify` to just be a partial
  * Added `process`, which is just `(comp wordify parse)`