Model separate project calls as seaprate list items in train

For non-leaf transforms, add a separate train method that takes
QList<TemplateList> as arguments, where the separate list items correspond to
the separate calls to project that would be made by parent transforms during
enrollment. This is basically to deal with the effects of distribute on
untrainable meta transforms such as flatten, we have to maintain a consistent
grouping with project, otherwise the intermediate projection results used
during training won't be consistent with what they would be during enrollment.
Some additional comments about train/project overloads
Merge branch 'master' of https://github.com/biometrics/openbr into training_structure
A few more comments about Crossvalidate
Add a preliminary version of Stream::train

This should be correct, but is fairly inefficient. Further work could be done
if anyone is actually interested in using it.
Update stream::train

This needs to be a little more complicated. Retain the project pattern done by
Streams during partial projects by using a timeVarying transform to collect the
output template sets (grouped as they are at the end of the partial stream).
..and be sure to clear data we have already added
Merge branch 'master' of https://github.com/biometrics/openbr into training_structure
Merge branch 'master' of https://github.com/biometrics/openbr into training_structure
Re-enable train(templatelist) as the external interface
Move default train implementations to openbr_plugin.cpp
Merge branch 'master' of https://github.com/biometrics/openbr into training_structure
Merge pull request #85 from biometrics/training_structure

Introduce a separate train method that models the inputs of separate project calls as separate list items