Or how to get all of it

Conversations is Android client app which supports all chat sync features, and also supports chat encryption with OpenPGP (but can't send to offline buddy yet), OTR and OMEMO. Recommended.

Gajim is desktop client supporting chat sync features, and encryption with OpenPGP, OTR. Feature-rich, but development is not very active. Recommended.

mcabber is terminal interface client app which supports Message Carbons but not MAM. Supports chat encryption with OpenPGP, OTR. Actively developed. Recommended.

Pidgin is multi-platform desktop client app which doesn't support Message Carbons as of 2.10.11 release (but there's a patch pending), MAM seems to be not there, either. Supports chat encryption with OpenPGP, OTR. WARNING! Seen to disable configured encryption without notice. Not recommended.

Please help to gather information about support of these features in other FOSS client apps.