Make the mode a better Emacs citizen

New features:
* Introduce `js2-minor-mode', to run parser with another major mode active.
* Add `js2-display-error-list'.

Breaking changes:
* Emacs 24 only.
* Don't set up mode association automatically for *.js files.
* Get rid of the mirror-mode (use electric-pair-mode).
* Get rid of the auto-indent code (use electric-indent-mode).
* Get rid of the js2-rebind-eol-bol-keys.
* Don't rebind RET. Use M-j to extend comments.
* Don't bind `js2-mark-defun' and `js2-narrow-to-defun'.

Other changes:
* Derive from `prog-mode'.
* Improve documentation style.
* Consistently use 'js2-' prefix.
* Replace `defsubst' with `defun' is many cases.
* Don't use `save-match-data' unless required (which is currently never).

Incorporates a patch by Stefan Monnier.
Reapply the fix from 83ba85
Apply sensible changes from GNU ELPA repository

* Remove `js2-function-param-node-p', it was unused.
* Change mode title in the header.
* Remove '-face' suffix from faces, the manual says that's redundant.
js2-print-list: accept that some elements may be nil

let [a,,c] = [1, 2, 3];
js2-print-var-decl: handle the 'let' case the same as others
js2-print-array-comp-node: plus 'each', minus extra closing paren
Add autoload cookie for js2-minor-mode
Warn about undeclared variables in the generic way

This way they show up in the warnings list, so they can be jumped between with
`next-error', and are visible in `js2-minor-mode'.

Highlighting and underline together look gaudy. Do something more complex?
Set next-error-function in major mode, too
Make `js2-highlight-level` buffer-local in minor mode
Don't need to clear next-error-function in `js2-mode-exit`

Major mode change kills all local variables anyway
Add message table entry for undeclared vars
(js2-echo-error): ignore when help-echo property is not a string
(js2-display-error-list): make the buffer navigable
Reduce the indentation variables count

* Remove `js2-consistent-level-indent-inner-bracket-p` (assume it's always t).
* Merge `js2-pretty-multiline-decl-indentation-p` and
  `js2-always-indent-assigned-expr-in-decls-p` into one as
  `js2-pretty-multiline-declarations`.
* Make the description more clear.
Merge branch 'master' into emacs24

Conflicts:
	js2-mode.el
Wrap all `js2-post-parse-callbacks` calls in (save-excursion)
Bring back js2-external-variable face

Being able to distinguish this type of warning from others is kinda useful.

Might also use overriding for new types of warnings later, like unused vars.
Merge branch 'master' into emacs24
Merge branch 'master' into emacs24

Conflicts:
	js2-mode.el