Fix incorrect call to Faraday::Request#url=
Use Faraday::Response#status instead of Faraday::Response#code
Add Henson::APIError as a superclass for all API errors
Fix Henson::DSL::Puppetfile specs

Previously, even if the value of an option given to an API client was
nil, we were inserting it into the request options. This fixes the
behavior to only include POST body params or URL params in cases where
the value of a given key is not nil.