Micro optimisation: removed call to is_callable in Injector::requires().

This saves in the region of 0.00001 and 0.00006 of a second which is a fair amount considering how heavily it gets hit.
Micro optimisation: removed is_callable check from Injector::depedencies.

The same basic check is performed in Injector::requires and this shaves off 0.000001 of a second
off of the injection time which is big in real world application terms.
Refactored Injector::service() to Injector::factory() as this is more factually accurate.