implement flexible configuration model

Rather that only supporting java.util.Properties as a configuration source, support pluggable ConfigurationProvider interface. PropertiesConfigurationProvider supported for existing functionality.

This is an alternative to https://github.com/aramrami/OWASP-CSRFGuard/pull/5 in the sense that in an OSGi environment (at least the one I'm targetting), I would use a custom `ConfigurationProvider` implementation and do the class instantiation separately.