Using the same CRandom instance over multiple threads is not safe.  Modified
StratifiedCrossValidationSplitting so that we can set own RNGs using member
m_rng.
Added additional permute methods to SGVector which take external random state.
Added external random state changes to CrossValidationSplitting as well.
Added shuffle(CRandom*) methods to DynArray, DynamicArray and DynamicObjectArray for thread safe shuffling.  (e.g. parallel cross validation)
Cleaned code duplication introduced by earlier commits.  Now using ->shuffle(m_rng) for shuffling arrays.
Merge pull request #1424 from tklein23/thread_safe_xvalidation

Setting RNG in StratifiedCrossValidationSplitting for thread safety