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
[ refactor ] Added argument for default value to invertP
caching: move pragma check after scope checking
[ fix ] Replaced (bad?) fromMaybe with case
[ Old GHCs ] Don't -fno-warn-identities on 7.0

This is a backport from master.
Move CPP pragma before the first CPP directive.
[ comments ] Haddockified invertP.
Merge branch 'maint-2.4.2' of github.com:agda/agda into maint-2.4.2
[ build ] Don't override AGDA_BIN if already set.
Revert "[ fix ] Replaced (bad?) fromMaybe with case"

This patch is the identity, at least in a lazy language like Haskell.

This reverts commit a25253a3adaa0314188ff5b698cb1520bd32ce05.
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"
[ issue1303 ] Unquoting a variable referring to a dot pattern now triggers a proper error message.
caching: cosmetics
caching: use finally_ to not reset the state