Revert "reverted AlgorithmCore::compare to known stable version"

This reverts commit 480fa5d1b3c618d64dacfb8dea57f2311bfa803b.
Fix handling of empty output in updated compare
Fix updated compare breaking FuseDistance

GalleryCompare was improperly marked as independent, which broke the
online fusion scheme used by FuseDistance.
Better handling for comparing a gallery against itself

Don't enroll the gallery twice if enrollment is necessary.
Also, don't enroll the metadata twice to the same memgallery
Fix a case where multi-process wasn't used in compare

Still use multi-process mode for comparisons, even if we don't have to
enroll the probe set.
Additional comments on update compare function
Merge branch 'master' of https://github.com/biometrics/openbr into stream_based_comparison
Refactor emptyRead

Move emptyRead to a higher visibility scope, and make it handle caching
metadata in addition to reading galleries. Caching still leverages
memGallery since re-implementing a cache just for FileLists would largely
be redundant.
Set correct stream readMode for transforms returned by Transform::fromAlgorithm
Don't create temporary transforms containing idenity

Instead, we just prepend/append to transform lists as needed. Maybe this
is less confusing.
Rename emptyRead FileList::fromGallery, default caching to off.
Merge pull request #175 from biometrics/stream_based_comparison

Stream based comparison