rename BPFactorTreeSumProduct -> BPFactorSumProduct for consistency
get rid of code duplication, subtle bugs and inconsistencies with null set of varying neighbors and left vs right varying neighbors
get rid of factorNeighborIndex which was not only unused but also being set incorrectly
get rid of bad type bound
fix very tricky bug where single-variable chain BP gives wrong factor marginals and can break learning
max product variable marginals fixed to be one-hots, small tweaks