Added ability to delegate creation of interface implementations to factories.

e.g. so that in:
class TestClass{
    function __construct(LoggerInterface $logger){}
}

the $logger can be created via a LoggerFactory if it has been delegated as:
$provider->delegate('LoggerInterface', 'LoggerFactory');