iota states

I thought this made the code a bit easier to reason about and should still print the same when a human needs to read it (marshalling interfaces could be added, as well). They're at the top of the page as const but it's not immediately clear those are (the only?) states until you go looking for them. If the set of states is meant to be expandable I could see this change not being desirable (and breaks any compatibility, if you guaranteed that), but thought I'd throw this in the hat. Thanks for the implementation.
Personally, I think it is better to use a `map[State]string` here.