Use Distributed Cache for Session

Until now, portal_sessions was only reliably usable when using a family with only one zope node, because the session data was using RAM cache.
When used by authenticated users it was more or less usable, because of haproxy
sticky cookie that we set for authenticated users, but for non authenticated users
this was basically unusable.
This was especially a problem for CaptchaField, for which users are generally not
authenticated.

This changes portal_sessions to use a distributed cache, which brings several
differences:
 - sessions are now shared between all zopes of a cluster.
 - storing ERP5 temp documents is still possible, but modifying a temp document in
   session does not automatically save the changes in session, for next session read
   to be using the modified document it's required to save the document explicitly.
 - session respects transaction semantics, changes are only persisted in session when transaction commits successfully.
 - `portal_caches.clearAllCaches` API no longer clear all sessions.

See merge request !1451
5 jobs for master in 0 seconds
Status Job ID Name Coverage
  External
passed ERP5.PerformanceTest-Master

00:24:20

failed ERP5.UnitTest-Master

01:48:43

failed ERP5.UnitTest-Master.Medusa

02:13:43

passed SlapOS.Eggs.UnitTest-Master.Python2

passed SlapOS.Eggs.UnitTest-Master.Python2

00:09:07