[deployment/source] mark environment tests as integration

They involve hitting the network, so we shouldn't run them in the
general case.
[module/forge] Document possible statuses
[module/forge] Implement more meaningful status values
Extract module metadata class
[module/forge] Delegate to metadata, simplify tests

This commit changes the forge module to handle most of the metadata
interaction to the dedicated class, simplifying the actual work that
needs to be done inside of the forge module. It also guts and overhauls
a lot of the test suite and fixes bugs that were uncovered while
changing out other functionality.
(maint) extract shared testing contexts
(maint) running specs really shouldn't delete fixtures

:(
[module/forge] Add test coverage for install/upgrade/reinstall
Merge branch 'feature/next/better-forge-module-status' into next