* 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