NOT READY FOR MERGE: Start on restructure of module to allow for instances + adding tests

I've started work on making the module really friendly! :smiley_cat: 

There's test definitions ( #4 ) and instances ( #7 ) of client in here already.

Aim: No passing around `job` and instead call prototypes of it. e.g instead of 
```js
var reportProgress = client.defineProgress(job);
reportProgress(50);
// becomes
job.reportProgress(50)
```

Any help getting this implemented quick would be awesome!