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.
If you just want a boolean and false is not a possible state, then the [bang bang operator](http://stackoverflow.com/questions/524658/what-does-mean-in-ruby/524687#524687) might be useful.

```ruby
transitted = !!next_state
```

Note, if next_state is false or nil, the !! will return false, whereas your code here will only be false if it's nil.