This class uses integer bitmasks to represent permissions. This allows for easy and acurate storage of complex permissions. To aid in ease of use the class will convert bitmasks
to an associative array of boolean permissions and then convert the array back to a bitmask for easy storage.