Once we don't rely on directory listings anymore, most JARs will be
marked as optional. Also, attributes have to be set beforehand to get
artifacts with specific types, as available artifacts cannot be listed
beforehand.
* Print: use roots when rendering reverse graph
* Print: Refactored to be able to return Tree data structure
* SBT: Refactored code and added coursierWhatDependsOn Task (?)
* SBT: Added tests to the new coursierWhatDependsOn task
* Tasks: Another try to fix the build
* Tree: Restored Apply[A] for binary compatibility
* Print.scala: Fix the build
* sbt-coursier: Refined what depends on check to check correctness
* PrintTests: Added test for reverseTree
* CR Fixes...
1. changed gotVersion to reconciledVersion
2. Moved AppliedTree to tests project
3. Changed message (wanted version, got version) to X -> Y
* changes
* changes to Attributes
* make changes
* add test and fix bug
* add more tests
* fix failing tests
* fix parentheses
* remove comments I added and add test that's guarenteed not to exist in a repo
* remove Attributes third parameter and refactor Parse's moduleVersionConfig to return a tuple of Dependency and a Map of String to String representing extra parameters for the dependency
* update some return types and methods in the Helper class
* return FallbackDependenciesRepository back to original state
* refactor helper
* remove url from attributes
* fix tests and add cache to extra in build.sbt
* remove FallbackDepsRepo from sbt-coursier
* add variable for url and call encode in tests
* update tests and helper to have proper behavior
* remove setting deps to intransitive when url is present and add two tests
* add more tests, implement @wisechengyi's comments
* fix nits
* update ParseTests because some failed
* fix tests
* incorporate feedback from @alexarchambault and @wisechengyi
* update ParseTests to check for returned error vs thrown error
* remove one test that is covered in ParseTests
* fix nits
* add back deleted brackets
* return errors in Left without using return statement
* revert change because it's broken
* fix some positional things
* add return statement or else error won't be processed
* fix nits. thanks @wisechengyi
* Remove return statements