Attempt to speed up visiting side-effect modules.

If a module is imported only for its side effects it will most likely
have no import or export statements. This is true mostly for 3rd party
libraries that have a shim that imports them. We cannot completely
avoid traversing them because we need to check for non-top level import
and export declarations, but we can avoid processing all other AST
nodes.
Use our own simple version of mkdirp.

The mkdirp package does not work very well with the browserified
fake-fs package.