Separate dependency data and presentation concerns

This PR breaks the describe namespaces into four parts to achieve the goal in the title and make the code easier to change. The `describe` namespace now renders the final report with `(println (as-text project))`. Other pull requests can easily introduce `(println (as-csv project))` and `(println (as-html project))`.

This PR also introduces a unit test with a sample project stubbing out what will be sent from Leiningen at runtime.