recompile rules on late backchain declaration (Issue #31); requires running
compiler to fixed point; maintaining a set of failed rules.

small tweak (hacky) to make compiler error messages friendlier -- show rule
source instead of `<repl>` (which was the mask for a big sha1+linenumbers).
added test case from issue #31 - late backchaining declarations.
add test case for an instance of a cyclic program which uselessly runs off to infinity when we retract a node.
tweak