improve received error messages

added msg checker to check a functions return value against a result.
This allows the received checker to return actual useful error messages
now.
Merge pull request #62 from sideshowcoder/better-errors-for-message-handling-checkers

improve received error messages
One liner facts.
In all the pain of todays fighting with scopes I realised I can write one liner facts.
Make facts name unique when in same scope.
support callbacks
Example fact using callbacks
thinking about scoping rules.
Ensure atoms are shown correct in errors messages.
fixes issue #63
nil is a valid arg, use arity to decide if its a predicate.
Better formatting of errors with negation.
Negation error nicer for all matchers.
For consistency support ! falsey/truthy.
While I don't think you need them, its nice to have ! work for all checkers.
Nicer errors on ! raises exception checker.
push failing case.
Push ! case with exception based on message.
Render strings as quoted in error messages.
add version
Experiment with a defchecker helper function.
Useful for defining a single checker that works with negation.
Only works with 0 argument checkers functions currently
Helper for creating checkers.
Useful until we decided a better strategy for parsing !.
pipeline changes in master