Add factories, refactor tests

Add customer, recurring_payment, customer_account, credit_card_account
factories. Refactor customer_spec. Begin deprecating spec_functions.
Begin Implementation of Factory Girl for testing.

Add to Gemfile
Add to specs
Merge branch 'master' of github.com:CTA/PS into kcollette
Merge branch 'kcollette' of github.com:/CTA/PS into experiment
New high level request methods.

  These new request methods handle the response differently, and should
  be used in the following three cases.
    1: get object
      request_and_instantiate will get and instantiate the object from
      PS.
    2: save/patch
      request_and_update will make the request, and the update the
      object that made the request's attributes.
    3: request
      When you don't need to interact with the results.
Implement factories, add tests, implement fixes

Add new factories.
Add new tests.
Implement bug fixes via working with tests.
Merge branch 'kcollette' of github.com:/CTA/PS into experiment

Conflicts:
	lib/ps/psobject.rb
	lib/ps/response.rb
Closures for dynamic response handling.

  Instead of having different methods that handle the response
  differently, we are opting for simply passing a block to the request
  method. This makes response handling very modular. The two currently
  defined are &instantiate_object and &update_self--response handling
  blocks are defined in PS::Object. &instantiate_object returns an array
  of instantiated subclasses of PS::Object. &update_self updates the
  current object's attributes with that of the results. Response blocks
  are passed to request.

  Change PS::Psobject's name to PS::Object--it was named Psobject due to
  fear of overwriting the object class in ruby. Moved subclasses of
  PS::object under an objects directory.

  Added simplecov and got the coverage of the core classes to 100% with
  the subclasses of PS::Object to 80.73%.