Added verification of facts - unbounded facts must contain clauses
Big refactoring to allow support for more advanced Prolog features - currently only true/false queries working