Extract Hc4ProviderBase superclass from Hc4ProviderImpl

This makes possible to reuse the functionality without all the extra cruft

Signed-off-by: Alin Dreghiciu <adreghiciu@gmail.com>