Fail in friendlier way on circular dependencies

When the injector is asked to resolve a dependency tree with circles, it
currently fails with a SystemStackError.  This rescues that error to
make it more clear what the problem is.  A cleaner solution might be to
precompute the dependency tree and detect circles before trying to
instantiate everything, but this is a start.
Merge pull request #10 from brasic/circular

Fail in friendlier way on circular dependencies