Fixed issues with Bincode responses not actually being readable, oops. Also fix handling Bincode requests.
Added `TypedCache` for DRYing up GET request content-type handling.
Added `DeserializedBody` for DRYing up POST/PATCH request conent-type handling.
Removed "Unsaved" structs since I could just mutate Posted structs instead.
Added improved error reporting and stopped sending unfiltered interal error data.
Upgraded sqlx to proper 0.4.1 release.
This required a ton of changes including updating error handling and separating out the models into intermediate representations so that fields that are marked non-null in the database are not `Option` in the final model.
The update allows using `query_as!` in `interior_ref_list` and `merchandise_list` and model functions to specify a generic `Executor` param that can take either a db pool connection, transaction, or plain db connection. This should allow me to impl my old `Model` trait again.
Also compile times are magically 20x faster?!?
Creates the transaction record and updates the merchandise quantity in one db transaction.
Managed to do the merchandise update in one UPDATE query, but the error that's thrown when an item to buy is not found is pretty confusing, so I convert it to a 404.
I also added some DB indexes.