Serializer redesign

Currently just sketching things out.

Main things still to address.

[ ] Add relational fields back in.
[ ] Add remaining standard fields.
[ ] Add save behaviour for model serializers.
[ ] Deal with erroring properly on nested saves & deal with docs regarding how to deal with them.
[ ] Form rendering.
[ ] Simplify hyperlinked options.
[ ] Design away some of the field determination ickyness in hyperlinked & model serializers.

Closes #1802.