Useful method to allow FSMs to be reversed
Useful method to allow FSMs to be reversed

It was pointed out to me that my FSM->regex routine essentially just
reverses the FSM beforehand, although this is left kind of unclear at
the moment. Since this is not an entirely unreasonable thing to do to an
FSM, I'm making a separate routine to reverse an FSM. E.g. if x accepts
"beer", reversed(x) will accept "reeb". This was amazingly easy to do!

To do later: use this method explicitly in the FSM->regex routine. (Or,
since this is kind of pointless, remove that step entirely. Whatever.)

Since _crawl() is a rather powerful and useful way to generate new FSMs,
I'm removing the "_" and implictly making it a public method.

ThomsonReuters-LSPS/greenery,ferno/greenery,AdeebNqo/greenery