Fix Standard_Construction_Error exception in BOP

gp_Vec.setXYZ() may be called on a null vector within
BOPTools::FindPointInFace, which throws an exception if
they have not been disabled.

Fix #485.
[optimization] Calculate best initial condition for loops

In order to not impact the code too much, we'll simply calculate the correct values of k here so that execution will simply pass through the existing do loops once and be finished.
Fix typo in previous commit
Merge pull request #487 from tpaviot/review/fix-BOP-raise-Construction_Error

Fix Standard_Construction_Error exception in BOP
Merge pull request #488 from tpaviot/review/BOP-cut-improvements

BRepAlgoAPI_Cut improvements
[mingw-warning-fix][maybe-uninitialized]

If Abs(Coord - Arr(i)) == Tol here in Hunt(), then it's possible for the variable that Iloc references to be uninitialized without raising an error. Hunt() is used in Locate2Coord() defined later on in the file, and it's possible for the variable N there to be used in comparisons without being initialized.
[clang-warning-fix][tmpnam-dangerous]

Clang 3.5 reports using tmpnam() as dangerous and to use mkstemp() instead. I believe this change will produce the same behavior as the original code but not 100% sure as I'm not very familiar with POSIX-only functions.
[mingw-warning-fix][array-bounds]

MinGW thinks it's possible to exceed the array bounds on line 898; it's not clear to me whether or not this is possible after looking at the code. This addition shouldn't hurt anything anyway.