BaseField.evaluate now takes 3 arguments, the instance being operated on, the field name, and the value that is being evaluated.
Added BaseField.clean, which processes the value being set and returns the value that will be stored.
ManyToManyFields now have a $fieldName defined which is an up to date array of the related instances.