Added PolycrystalICTools and modified PolycrystalReducedIC and HexPolycrystalIC to use it for #3892
Modified PolycrystalICTools to have content in the .C for #3892
Function names start with lowercase letter.

Return types go on separate line.
Merge branch 'PolycrystalICTools_3892' into devel
Fix the comparison in PetscJacobianTester (closes #3912).

It was missing the type cast, so the result was wrong even if the
numbers did not satisfy the relation.