Problem:
doAction assumes that an action would have a response body which causes
JSON unmarshal errors
Solution:
Only attempt to Unmarshal when a response is expected
Problem:
There are three clients based off the APIBaseClient so three code paths
are needed to make the same type of call in each client
Solution:
Add an interface so any client that satisfies it can be used to make
these calls