AbstractSavable -> Savable (interface)
Begin experimenting with using components with protections.

This removes the need for the distinct BlockProtection parent class, and moves that data to the LocationSetComponent. Eventually, Entity will be added also. This could open the door to more interesting ways for protections to protect stuff (RegionComponent? ;-))

p.s. block protections are of course not yet perfect. there's still a lot of missing functionality, but it's getting there.

Eventually, roles will also be moved to a component but for now they are stuck inside Protection (AccessControlComponent, or something to that effect.)