Change post_invoice() to accept a Net::Stripe::Invoice object.

Handle a HTTP 500 error more directly in make_request.

Allow "now" as a trial end value when creating a Customer object with
a subscription plan.

Add support for metadata and a description on the Invoice object.

Refactor the metadata form fields code into form_fields_for_metadata()

Add custom code to the closed parameter on the Invoice object, to only
post it back to Stripe if the value has changed.

Add form_fields_for_metadata in Net::Stripe::Resource since it is used
by Customers and Invoices.