Refactoring patch

The IDL reader (and resolver, and validator) currently has functions
with really long signatures, due to passing lots of setup
parameters around.
The better solution is to use these setup parameters *once*
to make an object.
This makes the interfaces much cleaner (shorter signatures),
and the function bodies cleaner because setup is put in a setup
function.

Compare:
Before:
interface_dependency_resolver.resolve_dependencies(
  definitions, idl_filename, interface_dependencies_filename,
  additional_idl_filenames, verbose=verbose)

After:
self.interface_dependency_resolver.resolve_dependencies(
  definitions, interface_name)

This allows us to remove a circular module dependency
(idl_reader <-> interface_dependency_resolver),
since we can pass an (instantiated) object, rather than
having circular imports for functions.

This also regularizes use of
interface_name/idl_basename/idl_filename
in dependency resolution, using the short interface_name
except when we actually need the full filename.

...and moves an error up to where we know the filename,
fixing a bug where we report Extended Attribute errors
on the main IDL file, even if they occur in a dependency.

Review URL: https://chromiumcodereview.appspot.com/19934009

git-svn-id: svn://svn.chromium.org/blink/trunk@154896 bbb929c8-8fbe-4397-9dbb-9b2b20218538