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
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)