An interface for power-of-two values. Several of our enums will implement this, if they model
flags that are designed to be bitwise-ORed together. Note that toLong() should return the
actual integer value of the enum element, not (necessarily) its ordinal(). This lets us write
generic code for treating power-of-two-enums as sets.