Refactor Guice injection of Forge API and Forge tools

This commit refactors the Forge class into two classes, a ForgeService
and a Forge. The ForgeService deals with everything related to remote
calls (install, search) and the Forge provides utilities to create
modules, save and parse files, etc.

The commit also contains an extensive refactoring of the Guice
injections needed to get the Forge up and running. The old code
was unnecessary complex and in many ways not flexible enough. There
was also a bug causing the Puppet preference for the Forge service
URL not to be picked up for some accesses.
Fix problem causing added dependencies to appear twice