get/set with [] and []=

Use ArgumentError for missing attributes
Remove explicit return statements
Have #set return the value that is set, not the int
Allow setting the bitmask attributes via a Hash