Port Ceres to Windows

This is a preliminary, but full, port of Ceres to Windows.
Currently all tests compile and run, with only system_test
failing to work correctly due to a path issue.

Change-Id: I4152c1588bf51ffd7f4d9401ef9759f5d28c299c
diff --git a/internal/ceres/runtime_numeric_diff_cost_function_test.cc b/internal/ceres/runtime_numeric_diff_cost_function_test.cc
index 6926d28..bc195b8 100644
--- a/internal/ceres/runtime_numeric_diff_cost_function_test.cc
+++ b/internal/ceres/runtime_numeric_diff_cost_function_test.cc
@@ -186,7 +186,7 @@
         { 0.0, 0.0, 0.0, 0.0, 0.0 },
       },
     };
-    for (int k = 0; k < ARRAYSIZE(kTests); ++k) {
+    for (int k = 0; k < CERES_ARRAYSIZE(kTests); ++k) {
       double *x1 = &(kTests[k].x1[0]);
       double *x2 = &(kTests[k].x2[0]);
       double *parameters[] = { x1, x2 };