Make it possible to extend CFClient, CCClientFactory and CCClientImpl

Squashed commits from #183.