Added cached Instantiator to be used in production instead of the Runtime version

Runtime Instantiator is dangerous to be used in Production, and you probably should not need to code your own implementation of a cached one everytime you need to use Lazy Loading. Solution, use this one instead.

Original solution by Dries Vanlerberghe.
Code sponsored by Capgemini.
phpstorm allows you to have different styles, so is fairly easy to change from one to another and refactor that code in case it is wrong. 

I have pushed the changes, hope it is right now, thanks Christophe.

--
Alex Moreno.