Maquina de estados da cast

Pessoal, adicionei a funcionalidade de maquinas de estado da cast baseado na gem STATESMAN, sugestões são bem vindas. =)
É uma boa prática também deixar somente a asserção (o teste de fato) dentro to bloco `it`. Todas as dependências do seu teste ficam melhor definidas em um bloco `before :each` por que ao revisar o teste você consegue separar visualmente o que é de fato o teste e o que é código dependente para se conseguir executar o teste.

Isso é legal também por que você consegue visualizar melhor o quanto é custoso fazer um teste (pela quantidade de dependências/linhas) e pela forma como você de fato executou o teste.