Add support for ServiceProviders to the DI Container

Update test to use mock properly
Add DocBlocks to the ServiceProviderInterface. Thanks @eddieajau

Fix docblock on container