refactor code to be able to use custom clients using poor mans injection

This change allows the user of the lib to use the default wsclient,
or one of the soon to come custom soap clients as a means for connection.
Right now its difficult to write tests around this lib, and using tools
like betamax do not work correctly. This is the ground work to allow these
problems to be addressed.