rewrite rust-mode to use font-lock-mode and emacs builtin syntax analysis