Untested engine

Design notes

Created project

Added facts

Added factstore parameter to fact subclasses

Converted factstore to use sets and defined equality for facts

Factored out most fact store implementation

using more sets

Factored equals behaviour into a mixin

Added deduction base class

Added some deductions

Added beginnings of engine class

Extra type of deductions and fixes to constructors

Added rules class with one very basic rule

Convenience improvements to rules

Better argument names for rule apply methods

More useful to pass a factstore and deductionstore rather than a list of all facts and deductions

Made infostore.all() return an iterable (not set) and implemented engine processing

Time is now per factstore