caching: initial implementation
caching: invalidate when pragmas change
caching: invalidate when sections change
caching: move support code to its own module
caching: better names for functions
caching: write the log even when an exception is thrown
caching: move pragma check after scope checking
Merge branch 'master' into caching, and refactor caching.

Conflicts:
	src/full/Agda/Interaction/CommandLine/CommandLine.hs
	src/full/Agda/Interaction/Imports.hs
	src/full/Agda/TypeChecking/Monad/Base.hs
caching: cache only during an "Interaction"
caching: cosmetics
caching: use finally_ to not reset the state
[ Issue 1321 ] Fix: Use telView instead of telView' for robustness.
[ Issue 1321 ] Fixed by Fredrik N Forsberg: reduce type.

This line is not strictly necessary after the fixing it in MetaVars.hs,
but reducing here saves us from reducing twice later.
[ Issue 1321 ] Test: fails, but should not crash.
Merge branch 'maint-2.4.2'
[ caching ] fixing Eq instances
Merge branch 'caching'

Conflicts:
	src/full/Agda/Syntax/Abstract.hs
[ Issue 1325 ] Fixed by translating split variables through scope.
[ Issue 1325 ] interaction tests.
Merge branch 'master' of https://github.com/agda/agda