Fixing no-self-compare
Merge pull request #162 from ilyavolodin/no-self-compare

Fixing no-self-compare. Fixes #161
Add no-undef (fixes #6)

References to an undeclared variable will be flagged:

```js
foo = 1;   // 'foo' is not defined.
```
... unless it is explicitly mentioned in a /*global */ block:

```js
/*global foo:true*/
foo = 1;
```
Added acceptance criteria for rules to docs
Merge branch 'master' of github.com:nzakas/jscheck
Added tests and test cases for a few files
Removing nasty leading underscores
Add support for the do-while statement to the curly rule (closes #167)
Match messages to JS[LH]int where appropriate, and ensure consistent message formatting (closes #163)
Merge pull request #165 from captainbrosset/coverage

Increasing the test coverage a bit
Merge pull request #168 from jamesallardice/fix-curly-rule-do

Add support for the do-while statement to the curly rule (closes #167)
Updating no-undef patch (see pull request #164)
1. Move predefined globals to ```conf/environments.json```
2. Move mixin() to ```lib/util.js```
CLI: -f now accepts a file path

The -f option for the CLI will now accept a path to a formatter, as well as the name of a formatter in the ESLint core package. This will allow the end-user to plug in a custom formatter that may not be appropriate for the ESLint core package.

In addition, a bug was fixed in which a failure to find a formatter would incorrectly exit with a 0 (no errors) code.
Added tests and test cases for a few files
Removing nasty leading underscores
Add support for the do-while statement to the curly rule (closes #167)
Fix broken test
Warn on finding a bitwise shift operator (fixes #170)
Updating no-undef patch (see pull request #164)
3. Move parsing of ```/*global */``` and ```/*jshint */``` to eslint.js
Warn on finding the bitwise NOT operator