Initial work on attribute permissions.

I've made some progress on attribute type, role based permissions if you're interested. This seems to be the simplest method I could think of that didn't involve major changes to the auth system or database.

Each role is assigned a priority from 0 to 255. Each attribute type is assigned a view permission based on roles. If the view permissions role priority is less than or equal to the current users role priority, the field is visible on item display, otherwise it isn't shown.

Initial tests show this works fine. I haven't updated the upgrade scripts.