Ninja mode.el refactor

An attempt to make `ninja-mode.el` slightly less bad.

Should I squash the hell out of the commits?