Upgrade NoBrainer to fix persistence bug

NoBrainer had a bug whereby primary keys defined on aliased fields
were ignored, effectively completely breaking all persistence
operations. This is now resolved.

All other changes are fixes to exiting models that were required
after issues were uncovered once persistence worked again.
Refactor ObservationForm#save