Helper class to load CDI implementations dynamically at run time using
system properties to configure them.
To 'activate' DynamicCdiLoader in a CDI project, add a new class that extends from it in a beans enabled
module.
Implementations to be found by the DynamicCdiLoader must implement the tag interface DynamicCdi. They should
implement another interface for the Service they implement (so we can have different implementations at all).
They can optionally define an annotation DynamicCdiTag with a String value. If they do, this implementation
will be loaded if the tag is activated.
A tag can be activated either by specify a property with the full class name as its key and the tag as its
value or by specifying the default tag using the property ju.ee.cdi.defaultDynamicCdiTag
If no tag is specified, the default value '-' will be used which stands for the default implementation.