Fix infinite loops problem with certain spec patterns

The fix is to completely remove the upShortcut transition types: upShortcut is hardly during the parse to easily construct "correct" FSMs,
but they turn out to be a bane for the actual arg parsing as they can introduce infinite loops.
To fix this, after parsing a spec string, a simplification algorithm is applied to the fsm to get rid of the the upShortcut transitions.
Handle -f=X syntax for short options