Modules

This PR completes support for modules. While the last PR added the framework for downloading and supporting modules in the config, this PR completes that by adding support in the `terraform` package so that apply/plan/etc. work. 

This also does a decent amount of UX work for modules: `plan`, `show`, and `graph` all have a `-module-depth` flag to control how deep to expand modules for UI. And `graph` fully supports modules now. In addition to those flags, `apply` and `plan` show modules in a nice way. 

There is more UX work to be done, and edge cases to be tested, but this should complete the feature.