refactored BrightpearlClient to take a request object which encapsulates all elements of the request.

Starting to be really annoyed with decision to remove type information at compile time.... why why! yes i know backwards compat...
big refactor to pull out auth stuff. Need to fix tests..... time for sleep.