State machine integrated to Issues, Merge Requests, Milestones

I think, that the  most part of community agree with me that we need a state machine for better observing support.

The state machine does state changes more clearly and produces additional callbacks to obser. Also it describes transitions, that allows to do some state changes or reject  them. For more information, please, checkout [this](https://github.com/pluginaweek/state_machine#description).

Now we have:
* **Issue**, that can be closed, opened and reopened
* **Merge Request**, that can be closed, opened, reopened and merged
* **Milestone**, that can be closed and activated

For all transitions we can create callback in observer.

Also, I improved tests and the world looks more better now.

My Next step is to integrate State Machine for merge statuses.