Code style and enforcement lint(er) tool

Summary

Define a recommendation for JavaScript coding style and a lint(ing) tool.

Conventions

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
interpreted as described in RFC 2119.

Motivation

The goal is to achieve a consistent code-editing experience across many
projects. A single style should be followed so that code written for one
project will "look" as if it was written in/for any other project. It should be
hard to distinguish code written by different developers. This should promote
people contributing to other projects directly or through "sharing" code.

Choosing a single lint(ing) tool/utility will simplify dependency footprint
and enable people to share knowledge or project configuration. Further, this
will enable projects to have a more consistent tool-chain and be built from a
common starting point.