Expanded PS::Customer a bit, and wrote tests.

  In writing the tests, I found a bug in the handling of api responses.
  I have since fixed the small bug.