Adds unit and remote tests. Separates pieces of the logic in the client class

This adds both unit (stubbed) tests and remote tests (goes against nfg sandbox). You will need to supply your own partnerid etc. to run the remote tests. 

I have also broken the client class into a few more methods and added verifications that the supplied params for each method contains the required keys.