Refactor providing dependencies when calling functions

This is related to #7, I can't say that I'm entirely satisfied with the design though.

This also changes Injector behaviour a bit - it won't look for dependencies that are already passed as keyword arguments from external code.