New Factor trait based on old Factor, abstracting defs
New BasicFactor with implemented defs (from old Factor)
New Factor based on old ProbFactor
Replace ProbFactor with Factory
Use Factory.make instead of "new Factor"
Structured factor