Form refinements

This PR adds the following functionality:

- [x] ability to provide a filter for reference fields
- [x] ability to provide a select for reference fields
- [x] ability to provide a sort for reference fields
- [x] ability to customize the label reference fields
- [x] the boolean widget now longer default to false
- [x] pre.save middleware are now passed req
- [x] the enum widget now works with the placeholder value