Rewritten and restructured decoders and ClientConnection

Next up: ClientSession.
Merge branch 'master' into bug/5224-dovecot
Merge branch 'master' into bug/5224-dovecot
Refactoring and simplifying ClientSession for new model

One upside to this new model is that ClientSession will be greatly
simplified in terms of one-off Events.  Now the various States
merely wait for the appropriate ServerResponse and transition then.
Merge branch 'master' into bug/5224-dovecot

Conflicts:
	src/engine/imap/transport/imap-client-session.vala
Further work to ClientSession

A great deal of simplification thanks to this new model.
Merge branch 'master' into bug/5224-dovecot
Further cleanup

ClientSession is further refined.  ClientSessionManager is much, much
simpler now (at the loss of some bulletproofing).  Starting to crack
Imap.Account, which means darkness is giving way to light.
Merge branch 'master' into bug/5224-dovecot
Imap.Account fleshed out, on to Imap.Folder
Merge branch 'master' into bug/5224-dovecot
Merge branch 'master' into bug/5224-dovecot
Major merge from master.
WIP
Merge branch 'master' into bug/5224-dovecot
Merge branch 'master' into bug/5224-dovecot
Merge branch 'master' into bug/5224-dovecot

Conflicts:
	src/engine/imap/api/imap-account.vala
	src/engine/imap/transport/imap-client-session-manager.vala
	src/engine/imap/transport/imap-client-session.vala
Merge branch 'master' into bug/5224-dovecot
Merge branch 'master' into bug/5224-dovecot
Merge branch 'master' into bug/5224-dovecot

Conflicts:
	src/engine/imap/api/imap-folder-properties.vala
	src/engine/imap/api/imap-folder.vala