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?
Package managers are subclasses of PackageManager

and extracted the #active? method under the assumption that managers
will implement the #package_path method.

also refactored tests to not stub out the method, and instead inject the
dependency into the initializer.
Introducing a Logger class

which is controlled by CLI options --quiet and --debug.

The goal is to make more transparent the things that LicenseFinder is
doing. With this commit, that's only which package managers are active.
But in the future I'd like to also include which packages are inspected,
what their dependencies are, and how the license information is being
derived/discovered.

I've also introduced a shared spec for PackageManager classes.
Removing now-unused method.

Related to ade3963.
Adjusting newlines emitted by Logger::Verbose
Speeding up Package#determine_license

which was calling successful licenses_* methods twice.
PossibleLicenseFile#path

for imminent use by logging mechanisms.