No Extend Native

Disallows directly modifying the prototype of builtin objects by looking for the following styles:

- `Object.prototype.a = "a";`
- `Object.defineProperty(Math.prototype, "times", {value: 'x');`

It *does not* check for any of the following less obvious approaches:
- `var x = Object; x.prototype.thing = a;`
- `eval("Array.prototype.forEach = 'muhahaha'")`
- `with(Math) { prototype.thing = 'thing'; }`
- `window.Function.prototype.bind = 'tight'`

Took some code from David Nelson's pull request. Tests were written and pass. Fixes #210.