When verifying imports not reassigned, make sure the identifier isthe same as an import and make sure declaration scopes are global
Add `src` property to Module for control over I/O

This splits apart reading in the module src code from parsing it into an AST. By adding a `src` property to Module instances, there's now a hook to control file I/O — for instance to cache the src of unchanged modules between re-builds.
Added an additional test case for checking non top level scopes reassigning to imported binding identifiers
Merge pull request #149 from ericf/module-src

Add `src` property to Module for control over I/O
v0.6.1
Merge branch 'fix-verify-declarations'

* fix-verify-declarations:
  Added an additional test case for checking non top level scopes reassigning to imported binding identifiers
  When verifying imports not reassigned, make sure the identifier isthe same as an import and make sure declaration scopes are global
v0.6.2
Remove duplicate declaration of FileResolver.
Stop asserting that formatters have `reference` and `build` functions.

`reference` isn't even called directly, and there are a whole bunch of other methods that are called directly that we don't even check.
Improve and fill out the inline documentation.

We also just refer to the global names for objects in ast-types.
Inline an unnecessary variable.
Fix whitespace.
Create a base class for formatters.

This class is almost entirely abstract and requires subclasses to implement their interface.
Fix type signature for the Resolver typedef.
Remove unused getExportReference functions.

These were left over from a much older version of the Matrix.
Remove an unused function from Module.
Fix a whole bunch of types and type annotations.
Test out a version of the CommonJS formatter that outputs ES3.
Disallow updating exports since this version does not have bindings.
Use a computed string property since 'default' is not allowed in ES3.