[ new ] Added Agda.Utils.Empty

Contains an Empty type with Eq, Ord and Show instances and eliminator.
[ refactor ] Use Empty type instead of (forall a. a) in substitution type

Means we can derive Eq, Ord and Show again.
[ refactor ] moved substitution type to Syntax.Internal

We need it here if we want to experiment with explicit
substitution in terms.
[ fix ] fixed path to undefined.h
Merge remote-tracking branch 'origin/maint-2.4.2'
[ fix ] undefined.h doesn't need absolute path on master