Instantiates a connection provider given either System properties or
a java.util.Properties instance. The ConnectionProviderFactory
first attempts to find a name of a ConnectionProvider subclass in the
property hibernate.connection.provider_class. If missing, heuristics are used
to choose either DriverManagerConnectionProvider,
DatasourceConnectionProvider, C3P0ConnectionProvider or
DBCPConnectionProvider.