Structured factor

Refactored Factored

Created trait for Factor
Moved current Factor defs to a BasicFactor
Renamed ProbFactor to Factory

Changed constructions, eg "new Factor" to Factory.make

All tests run successfully except:

Some non-deterministic tests
Tests associated with MakeList (eg, CompountTest) as mentioned in other posts.