* Simplify the way builtins is used (remove astroid dependencies)
* Replace the constant BUILTINS by the string 'builtins'
This make for clearer and also slightly faster code (means time
seems to decrease by 0.68% with this change alone (astroid/pylint)
in the pylint tests benchmarks). Done because we were using an
import from astroid from astroid.bases for one of those, which is
kinda messy.
* VariableChecker now accounts for attribute lookups in type comments
Prior to this commit VariableChecker did not recurse into attribute lookups
in type comments. This lead to false positive unused-import messages in e.g.
import collections
d = ... # type: collections.OrderedDict
Fixes#4603
Some constants were package internal but were used by multiple
packages. This created circular dependencies. By creating a
file for constants we make sure this does not happen because
we won't import everything important in this file and every
thing else can depend on it.