Creating reservations and checking out items

- making sure reservations on the same item don't overlap
- making sure an item is reserved before check out
- more validations on reservations and checkouts records
- marking item as 'in use' on successful checkout
- API endpoints