Properly mode-ify the code

* run exit hooks when mode closed
* use exit hooks to clean-up
Use start-process instead of other calls

We don't need the mess of run-async-command and spawning a shell is
excessive as start-process is already path aware.
Add support for disabling the touch-pad

On the Pixel the touch-pad is super sensitive so it's worth disabling
"tap to click" when you are in Emacs. Clicking will still work.