libshout's state machine should be rewritten
The current state machine was designed without "modern" extensions (such as TLS and PUT) already around. For those extensions and modes it does not support full support and is error-prone.
Therefore the state machine should be rewritten.
See also: #2301 (closed), #2153 (closed), and #2298 (closed).