Partial fix to circular deps (#40)

- Adding tests
- fixing use of set fetching to find repeated deps and prevent infinite
  loops

On a circular loop rebar3 now fails with `{error, no_sort}`, which is
uncaught and should be handled to consider the issue fully fixed.
Return cycles in deps solver
Handle cycle errors in provider
Merge pull request #44 from rebar/fix-circular-deps

Partial fix to circular deps (#40)