This build is incompatible with older databases. Slightly redesign attributes/roles to simplify them by ultimately inheriting from the same base class and not duplicating logic

These changes are unfinished but are in a mostly satisfactory state.