Make js2-mode optional.

This probably should be done via a small compatability layer to
js2-mode and js-mode instead of litering the source code
with (if (fboundp 'js2-mode) ...) )