Use a graph to keep and search dependencies.

This make it possible to detect that a dependency has been loaded importing a package.
Merge branch 'master' into dependency_graph

* master:
  Do not print where he package is pointing when we don't modify the dependency.
  Fix command type.
  Add Mercurial support.
  Remove github restriction.
  Allow to set a custom working directory.
  state explicitly that the README must be named gopack.config
  use printf instead of println
Download transitive dependencies.

Organize the code a little bit to clear my mind.
Merge pull request #19 from calavera/dependency_graph

Use a graph to keep and search dependencies.