Handle cyclic dependencies

* The PR depends on #96.
* Please review only the second commit.
Since you can only request objects from an ancestor (Query is lazy, so it does not matter here), a cycle can exist only within an injector. Am I right?

But even it were not the case, it would not matter. This is because every injector has its own counter. So for a cycle to exist, the same `_new` must be called an infinite number of times. As a result, it will eventually exceed 10 for all the involved injectors. When no cycle exists, `_new` will be called only once for every registered directive, and thus cannot be greater than 10 for every injector.

I'm probably missing something. Can you provide an example where it won't work?