Theory::check() called only if there are facts to check

Andy/Tim, please review the changes to your theories, and let me know if anything.