Enable extensibility with other providers

- ProviderType is now just a string.
- Makes most classes 'public'

Signed-off-by: AndreaCuneo <andrea.cuneo@ark-energy.eu>