Invoice status, more error checking

Added a invoiceStatus property to the receipt db model. This allows
adness to track the status of a invoice from baron. Currently the only
status are ["new", "sent", "paid"].

The receipt model also now contains a full copy of the invoice.

The receipt model's metadata object contains a user object. This object
has a list of items bought by the invoice. These items now contain the
corresponding bid id.

Extra error checking has been added to the invoice creation process
where if the json that comes back from the payment processor is invalid,
the invoice call itself is queued for a later call.

The webhooks file now checks the receipt's invoiceStatus to see if it's
already paid. If so, the rest of the operations are skipped and a status
200 OK: true is returned. If not, the proper operations are carried out
and the receipt's invoiceStatus is updated to "paid."