Per file overrides in config + tests + refactoring

Added per file overrides in config(files[filename] = options)
Refactoring: core does not know about options, warnings are filtered later.
   This will allow for incremental checking at some point.
_ENV is now simply considered global when env_aware == true.
More tests on internal functions and even more pending tests.

TODO:
   Better handling of globals
      Use --std option to specify base, use --globals to add custom globals
   Actually write pending tests