genfoam: Remove support for -Wold-hashcodes.

This was for older versions of axiom; I don't think it makes a massive amount
of sense to retain support for these, especially as the hashcode calculation
has changed.   Simplifies the code slightly too.
tfGetCatExportsFrParents wasn't dealing with lists correctly.
dnf/ablogic: DNF now supports simplification of expressions containing
negations.  Add test case
Plus a formatter for DNFs for easier debugging.
dnf/ablogic: Add some extra tests, and improve dnf debug output.
aldortest: noticed that the float test was failing.. fix is simple, so
made it.
absyn.c: Rework hash function to take care of Pretend, Restrict and Test.
Use in ablogic.. This way, conditions like prime?(p) will be matched with
prime?(p)$F

Add confirming assertion in sefo.c, and some tests.
tform.c: Small improvements to debug output.
Showexports.c: include condition in category output
syme.c: add missing fieldInfo for SYFI_ConditionContext. Also, be paranoid
and check during initialisation.
lib/ax0/test: Use $(DBG), cos everything else does.
Set libraryincdir in libfoamlib - makes %.gloop targets work properly
build: Make Tests.am depend on Makefile.am

This way, a change in Makefile.am (usually a new test) will filter into
Tests.am.  And so the test will run next build.
lib/ax0: axextend.as: ShouldHaveSegmentGenerator's condition was incorrect.

Basically, it is looking for S has with { coerce: I -> S }.  This should
be I -> %, as it is the form actually exported.
genfoam.c: gen0HasImport returns a Word, cast it back to a boolean
showexports: category pretty printing wasn't correct. fix
syme.c: As an optimisation, call tiSefo if possible before launching into
tiGetTopLevelTForm.  tiSefo is less heavyweight when determining the type
of an expression.
sefo.c: track '%' on with expressions across file boundaries.

When we compile an expression like 'A has with f: %', a reference to % on
the 'with' expression wasn't being copied over across files.  So, now we
save it off in the semantics part of the abstract syntax, and ensure it
reappears when the tform for the expression is being computed.
Add new test for explicit conditions into aldor test suite.

Things like 'foo has with { f: A -> B }' should work just fine.

Turns out we were getting this really wrong.  So, test it, and we'll know
if it's all good.
tinfer.c: Implicit imports and conditionals

When matching 'add' bodies against context, look at implicit symes before
conditions.  Otherwise implicit symes that have conditions will not be properly
matched.
syme.c: Fix case of AB_And in a type expression.

Code that flattens AB_And in a condition (eg. A has B and A as X) was flat
out wrong, discarding most if not all of the actual condition.  Fix it.