Replace the external state_machine with an internal implementation

https://bugzilla.redhat.com/show_bug.cgi?id=1089061

This work refactored Job and its subclasses to use an internal implementation of state machine, removed the dependency of the state_machine gem.
- Can we (should we?) use symbols here?  Might make it a little clearer.
- For the `'_'` perhaps `'*'` would be clearer?  * is usually an indicator of "anything"