Flow changes: forced image type and pyramid generation fixes

For some of the newer flow algorithms in OpenCV, they take more than just grayscale.  I added the ability to customize that.

I also cleaned up the generation of `buildOpticalFlowPyramid` and prevented features to be tracked from being regenerated even when they are directly set (in `setFeaturesToTrack`)