Score level fusion support

This branch supports online score level fusion through:

* ```FuseDistance``` - Computes scores between individual matrices of a ```Template``` and fuses them via the mean, sum, min or max rules.  ```FuseDistance``` supports training its child distances by partitioning training data into ```TemplateList```s containing matrices specified by the split parameter.

* ```ZScoreDistance``` learns mean and standard deviations of match scores during training to normalize scores during comparison.