update the state monad
update the use of match
put recvSMTP and sendSMTP in the SMTPState monad
add support for optional replies in the SMTPS sequence

+ update the handling of the SMTPS sequence
code factoring for the recvSMTP functions
minor: code reorganisation
typo fixes
Merge pull request #6 from damiencourousse/state_monad_generalised

State monad generalised