Make udfs use 'udf:' prefix explicitly

UDF names must now be prefixed explicitly in most places where they are used. An exception being when in UDF internals, like UDFModel().

This decision was mostly stylistic, but was prompted by a bug in the newly created audit._deserialize_value method. When getting the django field for an audit value, it was retrieving the HStoreField for the UDFModel, which would try to deserialize the entire hstore (k,v hash). By being explicit about udf fields, it's easier to control the field that they provide to the deserialization method.
Phase out AuditUI and deserialization function
Phase out _write_perm_comparison_sets

This function turned out not to behelpful, and was hard to read.
UserTrackable no longer knows about udfs

UserTrackable should not have to know about udfs, but was coupled to
them by having 'udf_scalar_values' in the _do_not_track set.

Restructure __init__ and populate_previous_state so that UDFModel can
add 'udf_scalar_values' to the _do_not_track set *before* previous
state is populated, because populate_previous_state reads this set.
Fix python lint