[BUG #7279] make lint.lint_check return warnings instead of printing to the console

- this frees the low-level routine from bothering with I/O
- and allows the caller to consider caching the warnings for later reuse
- add a CodeIssue() class for that
[BUG #7279] splitting compile-lint checking into undefined_globals and others

- do all checks *except* undefined_globals only on freshly parsed classes, during
  dep.analysis in DependencyLoader
- do check for undefined_globals only when assembling scripts in CodeGenerator
- the idea being that the undefined_global check is essential when linking the
  application, but pot. fast enough when run alone
- and do the code-level checks, which are presumably slower, only on uncached code
[BUG #7279] split globals-checking from the rest of the lint checks

- do globals checking when building the app (in CodeGenerator), everytime
- do all other lint checks early on (in DependencyLoader), but only on freshly
  parsed code, and only on application classes
- also use a faster visitor for the globals checking (hence the new
  check_globals.py), but the check itself is shared with lint.py
- this is supposed to make the globals check lighter and faster (which is
  done with every build), and have the more substantial checks done less
  frequently
[BUG #7279] trimmed most of the code in check_globals.py through inheriting

- derived GlobalsChecker from lint.LintChecker
- thereby re-using nearly all code from lint module
- although it is a completely different visitor (on scopes than on syntax nodes)!
- slight interface correction in def unknown_globals()
[BUG #7279] fixed minor omission
removed old Pyro code