Extensibility enhancements

* Introduce ```com.ibm.jaggr.service.serviceprovider``` extension point which allows service providers to be loaded and registered using the eclipse extension registry.
* Introduce ```com.ibm.jaggr.core.config.IConfigScopeModifier``` service interface which allows the javascript scope used to evaluate the server-side javascript config to be extended by adding functions/properties that can be referenced in the config.
* Introduce the ```com.ibm.jaggr.service.impl.config.BundleVersionsHash``` implementation of IConfigScopeModifier.  This class adds the function getBundleVerionsHash() to the config scope which returns a cryptographic hash of the aggregated ```Bundle-Version``` header values in each of the specified bundles (additional headers may be specified).  The value returned can be assigned to the cacheBust config property to ensure that the cacheBust value changes whenever any of the specified bundles is updated.
* Introduce the ```com.ibm.jaggr.service.configextension.bundleVersionsHash``` eclipse extension which loads and registers the ```com.ibm.jaggr.service.impl.config.BundleVersionsHash``` service.
* Modify the sample application to utilize the ```com.ibm.jaggr.service.configextension.bundleVersionsHash``` extension and getBundleVersionsHash(String,...) function to assign the cacheBust property in the server-side javascript config.