MDL-38565 cache: session caches now function as expected

This change is a large change to the way sessions are handled
within MUC after it was discovered that session did not function
as expected when any store other than the default session store
was being used.
As part of this change the session loader has been largely
customised in order to consolidate session data for the loader.
The unit tests have also being greatly increased to provide
better coverage for sessions.

Conflicts:
	cache/README.md
	cache/tests/cache_test.php
MDL-38565 cache: cron routine to clean up old session data
MDL-38565 cache: upgrade code to amend default stores

Conflicts:
	version.php
MDL-38565 cache: improve stats gathering
MDL-38565 cache: tidy up pre-integration

Conflicts:
	lib/db/upgrade.php