Add Authorizable mixin, rework object heirarchy

Add model mixin Authorizable to handle user authorization of
model level permissions.

Factor out UserTrackable class from Auditable to also be used
by Authorizable.

Add Authorizable mixin and test coverage to Plot. Make trees
authorizable and add tests. Update permissions in tests and
refactor setUp.

get_instance_permissions now optionally takes a model which,
if supplied, filters down permissions to those for a given model.