Reformat all headers to be consistent.

Summary of changes made:

* Correct first- and last-line format. Preferred is three semicolons, file name,
  either three dashes and the description (first line) or the string "ends
  here" (last line).

* Changed header comment lines to match conventions. "Author" and "Maintainer"
  headers are singular, even when there are multiple authors or maintainers.

* Use the correct number of semicolons for each header section. Regular comments
  should have two semicolons; section headers, such as "Commentary" or "Code"
  should have three.

* Fixed "Keywords" header comments. There is a standard-ish set of keywords used
  in Emacs, available through `finder-by-keyword'; this commit uses those
  conventions. Also, keywords are now separated by comma then space and do not
  have a trailing period.

* Trailing newline at end of file. A few files lacked this, which makes
  subsequent diffs which modify the last line unnecessarily noisy.

* Moved "Code" section marker before any and all code in a file.
Convert files to `utf-8-unix' coding system.

The default coding system to use going forward, `utf-8-unix', is set as a
directory-local variable in ".dir-locals.el".

To force all elisp files to use the `utf-8-unix' coding system, the following
code will recursively walk through all elisp files in the specified directory
set the encoding system, and save the file.

    (require 'cl)

    (defun recursive-files (dir func)
      (loop with before-save-hook
            for (file is-dir)
              in (directory-files-and-attributes dir t ".*\.el$")
            if is-dir
              do (recursive-files file form)
            else
              do (with-current-buffer (find-file-noselect file)
                   (apply func)
                   (basic-save-buffer)
                   (kill-buffer))))

This can be invoked as follows:

    (recursive-files "/path/to/ess" '(lambda () (set-buffer-file-coding-system 'utf-8-unix)))

To ensure no other variables from the user environment impact the process, this
code can be run in "emacs -Q", which doesn't load any startup files (outside of
the emacs core).

This function could perhaps be split out, named better, and put in its own file.
Directory-local variables for whitespace cleanup.

Use the `whitespace' library for the cleaning.
Clean up all whitespace according to settings from ".dir-locals.el"

Uses `whitespace-cleanup' to set a consistent style for whitespace throughout
the project. This can be applied with:

    (defun recursive-files (dir func)
      (loop with before-save-hook
            for (file is-dir)
              in (directory-files-and-attributes dir t ".*\.el$")
            if is-dir
              do (recursive-files file form)
            else
              do (with-current-buffer (find-file-noselect file)
                   (apply func)
                   (basic-save-buffer)
                   (kill-buffer))))

    (recursive-files 'whitespace-cleanup)

Again, this can be run from "emacs -Q" after "(require 'cl)"
Merge remote-tracking branch 'haxney/clean-docs'

Conflicts:
	lisp/ess-developer.el
	lisp/ess-install.el
	lisp/ess-tracebug.el
Merge remote-tracking branch 'haxney/eol-consistency'

Conflicts:
	lisp/ess-tracebug.el
Merge remote-tracking branch 'haxney/whitespace-cleanup'

Conflicts:
	lisp/ess-developer.el