* Provide a way to inject transport (ssl socket factory, eviction, etc)

better solution for issue #134 
there are too many formatting changes in this commit. can't merge as-is. need to revert the re-formatting.