Now possible to provide an associative array of parameters to the container

I have made some changes to the container so that you can now provide an associative array of parameters to the container.

This is useful if you only want to override/provide some of the parameters when resolving an object. This is possible using the current implementation too but you would have to set the numeric key to the parameter number + 1 in order to achieve the same result.

This pull request is 100% backwards compatible and I have also added unit tests.

I'm also working on another addition to the container but it kinda depends on this so I'll wait before making a second pull request.