Add "default_permission" field to Role model

When adding map features to an instance we want to create default permissions to edit their fields for all existing roles, but there was no way to tell what permissions to use. Now we can store a default permission on each role and use that.
Refactor add_all_permissions_on_model_to_role() and rename as add_default_permissions()

* Use role's default permission instead of passing a permission argument
* "instance" arg is no longer optional
* Allow adding permissions for all of an instance's roles (instead of passing explicit roles to use)
* Allow adding permissions for all Authorizable models (instead of passing explicit models to use)
Also use all subclasses of Authorizable when setting up permissions for tests
Give each instance a list of map feature types it uses

* Stored as a property on instance.config
* Also add helper method to MapFeature