preexec: Optimisations for performance

We hit the -z "$preexec_interactive_mode" more than the -n "$COMP_LINE", so put
that first.

Before:
  % time for i in {0..100000} ; do true ; done

  real    0m4.013s
  user    0m3.944s
  sys     0m0.044s
After:
  % time for i in {0..100000} ; do true ; done

  real    0m3.892s
  user    0m3.836s
  sys     0m0.028s

TODO: remove DEBUG trap altogether and we get this:
  % time for i in {0..100000} ; do true ; done

  real    0m0.268s
  user    0m0.264s
  sys     0m0.004s

Kodus to Stephen Rothwell for noticing this.