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 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)
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.
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
Merge pull request #172 from iancmyers/feature-formatters-path

CLI: -f now accepts a file path
Merge pull request #174 from jamesallardice/fix-no-bitwise-shift

Warn on finding a bitwise shift operator (fixes #170)
Rule: no-underscore-dangle for func/var declarations
Update eslint.json with no-underscore-dangle rule
Rule: no-sync to encourage async usage
added consistent-this rule
fixes #143
fixed broken merge
Merge pull request #144 from pigulla/master

"consistent-this" rule