CIDEVSA-500: use new RR.retire( ) in all SA resources, and use better unit testing

This set of commits aligns SA's resource CRUD methods with the new RR.retire( ) functionality.  The services' unit tests have also been upgraded, so now the following checks happen on all CRUD operations (and are unit-testable to verify so):
 * Don't allow resource creation/update without a name
 * Don't allow resource creation of a duplicate name
 * Don't allow resource updating to a duplicate name
 * Don't allow resource creation with the _id field set
 * Require the _id field to be set in update operations
 * Don't allow a create/read/update/delete/force_delete method to accept a resource of the wrong type

UNIT and SMOKE tests pass.

Suggest moving ion/services/sa/test/helpers.py to ion/util in the future.