Fix models and validation so migration works; fix migration so DHCP builds work; add `dhcp_build` command; make builds accurate

There are a lot of things in this branch. Sorry about that. It was largely unavoidable because there are so many feature dependencies.

This branch is not ready for merge until all of the following boxes have been checked.

- [ ] Verify that model, validation, and migration changes don't break unrelated things
- [ ] Duplicate the DHCP config that Maintain generates as closely as possible, possibly by temporarily restricting Cyder's scope
- [ ] Improve on Maintain's DHCP shortcomings
- [ ] Write tests for builds?

---

Differences reported by [dhcpd_compare][1] as of the most recent commit: `around 660000`.


[1]: https://github.com/drkitty/cyder/compare/dhcpd_compare2