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;
```
Updating no-undef patch (see pull request #164)
1. Move predefined globals to ```conf/environments.json```
2. Move mixin() to ```lib/util.js```
Updating no-undef patch (see pull request #164)
3. Move parsing of ```/*global */``` and ```/*jshint */``` to eslint.js
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
Merge pull request #178 from mduvall/no-sync

Rule: no-sync to encourage async usage (fixes #177)
Rule: no-eq-null

The `no-eq-null` rule flags comparisons to null that do not use a type-checking operator.

Comparing to `null` without a type-checking operator (`==` or `!=`), can have unintended results as the comparison will evaluate to true when comparing to not just a `null`, but also an `undefined` value.

```js
if (foo == null) {
  bar();
}
```

This rule provides the functionality of JSHint's **eqnull** rule.
Updating no-undef patch (see pull request #164)
* Simplify parseBoolean()
* Make knowledge of```/*jshint*/``` and ```/*global */``` internal to eslint object
* Put user-declared globals in Program scope
Merge pull request #164 from mamacdon/no-undef

Add no-undef (fixes #6)
Merge pull request #179 from iancmyers/rule-no-eq-null

Rule: no-eq-null