Fix #91: Implement Gem#state

Work In Progress.

Currently implements

<img src="https://rawgit.com/wiki/ManageIQ/polisher/states.svg" />
There are so many returns and conditions in this method.  Maybe if we moved the contents of the if/else/looping blocks into methods, we can name the methods so that it's easier to compare the drawing with the method's flow.