[NEXUS-7581] CMA HTTP Client factory

https://issues.sonatype.org/browse/NEXUS-7581
http://bamboo.s/browse/NX-OSSF367
Feels a bit weird having an interface with no methods which isn't a marker. It would make more sense to have a method here that takes a config map/object and populates the appropriate fields. (Ditto for other common actions that apply to all auth configs.) Then all the code below that switches on the `AuthenticationConfig` sub-type could be split up and moved into the different implementations of `AuthenticationConfig`. That would be more OO-like :)