Modularize the build.

1. Add -DLINE_SEARCH_MINIMIZER to CMake to make the line search
   minimizer optional.
2. Better handling of -DSUITESPARSE/-DCXSPARSE in top level cmake
   file.
3. Disable code which will never be used if SuiteSparse and/or
   CXSparse is not available.
4. Update build docs.
5. Update jni/Android.mk
6. Minor lint cleanup from William Rucklidge.

Change-Id: If60460a858000df82faed7a6bb056dd2bfdde562
diff --git a/jni/Android.mk b/jni/Android.mk
index fddb81f..345b3d6 100644
--- a/jni/Android.mk
+++ b/jni/Android.mk
@@ -65,6 +65,10 @@
 #
 # to the LOCAL_CFLAGS variable below, and commenting out all the
 # generated/schur_eliminator_2_2_2.cc-alike files, leaving only the _d_d_d one.
+#
+# Similarly if you do not need the line search minimizer, consider adding
+#
+#   -DCERES_NO_LINE_SEARCH_MINIMIZER
 
 LOCAL_PATH := $(call my-dir)