Handle 400 Bad Request

This PR is to handle 400 Bad Request statuses returned by the server for create and update methods.  The idea is that any NapResource could be defined with a list of statuses that Nap would pass through as a BadRequestError exception, distinguishing them from InvalidStatusError.  In general, this allows the client to handle 400s and 500s differently. 

Things I'm not sure of (not a complete list :) )
-naming of the exception and the list of statuses
-which CRUD methods should check this.  Right now it is just Create and Update.