Finance framework

* Users can request reimbursements and view their pending, approved, and completed reimbursement requests
* Users can view their past receipts and search their past receipts by purchaser name
* Selling a part creates a receipt, which created a transaction representing income into the funds table
* Users can view generated PDF receipts which can then be printed if a customer desires a receipt.
* Treasurer can approve reimbursement requests

There are many other budget actions that are in the backend but not brought into the frontend currently to keep the size of the branch manageable. Notably budget management, and visualization, receipt management, and reimbursement request management are not in the Budget console at this time. They are of course modifiable directly through the db. 

The following SQL commands need to be run after merging this branch

1) INSERT INTO console (filename, title, description, internal) VALUES
('finance'          , 'Finance'  , 'Requests for Reimbursement' , false),
('budget'           , 'Budget'   , 'Manage the Budget'          , false);

2) INSERT INTO budget_category (name) VALUES ('Part Sales');

Fixes #170
Fixes #173
Fixes #18