Dry crud controller

- [x] dry stuff for the mass update dialogs
- [x] dry stuff for the crud controllers (dialog based)
- [x] dry stuff for the crud controllers (single page based)
- [x] TODO figure out how to assign default values before update
- [x] TODO figure out how to assign default values before create
- [x] upgrade `ag-demo`