When an AASM including class is subclassed, a shallow copy is made of
the StateMachine object. This means that all subclasses share the same
states hash and thus the same set of states, which prevents (among other
things) different subclasses from using the same state names.
Give StateMachine a smart #clone method that copies the states hash and
invoke that rather than #dup upon subclassing.