Do not memoize reasoning results when they are undecided

So that they are re-evaluated at next call
Add a clear_cache method to sqlite backend to discard memoized result

For now, only called when the 'clear' method is invoked (ie dropping the kownledge base)
Should also probably be invoked when retracting knowledge
{undefined -> undecided}

This is more accurate
Significantly improved implementation of lookup

Cf (new) unit-tests for details. Include a better management of undecided types
and actually checking the labels during the lookup.
Make sure the reasoner can survive a clearing of the knowledge base