Dev2.3.0.0

Refactoring Factor

Created new Factor trait from old Factor, defs are abstract
Created BasicFactor implementing the old defs
Created Factory using defs from the old ProbFactor

For consistency, used Factory.make instead of "new Factor" wherever possible
Made mapTo more functional, it returns a Factor instead of Unit