Making pip specs pass
DependencyManager: now a class that we instantiate.

This will allow us to start doing dependency injection for behavior that
can be driven from CLI options, like better debug/log messages.
Bundler: moving methods from class into instance.

This will allow us to start doing dependency injection for behavior that
can be driven from CLI options, like better debug/log messages.
Pip: moving methods from class into instance.

This will allow us to start doing dependency injection for behavior that
can be driven from CLI options, like better debug/log messages.
NPM: moving methods from class into instance.

This will allow us to start doing dependency injection for behavior that
can be driven from CLI options, like better debug/log messages.
Bower: moving methods from class into instance.

This will allow us to start doing dependency injection for behavior that
can be driven from CLI options, like better debug/log messages.
Maven: moving methods from class into instance.

This will allow us to start doing dependency injection for behavior that
can be driven from CLI options, like better debug/log messages.
Gradle: moving methods from class into instance.

This will allow us to start doing dependency injection for behavior that
can be driven from CLI options, like better debug/log messages.
CocoaPods: moving methods from class into instance.

This will allow us to start doing dependency injection for behavior that
can be driven from CLI options, like better debug/log messages.
Refactoring DependencyManager

now that we're using instances of all the package manager classes.
Nuking the spinner.
Cleaning up some Bundler test DI.
Variable name change.
Bundler cleanup and comments.
Removing what I believe to be useless code

regarding Bundler and "filtering" for packages that appear in the Gemfile.

Isn't this exactly what Bundler does?