This patch improves the extensibility with container specific implementation in PHP shindig by:
- making several classes better overrideable by making former private methods and members protected
- using dependency injection for Gadget, GadgetContext, GadgetFactory, GadgetSpecParser, GadgetSpec, Substitutions and ProxyHandler
- providing the current GadgetContext in GadgetSpecParser
Additionally TemplateLibraries can now be loaded with relative path as well (like the messagebundles). So that we don't have copied logic here, I moved the code to determine the absolute url out of the relative one out of the GadgetFactory into RemoteContentRequest class.