Complete restructure of root CMakeLists.txt with new "language bindings" section

I have completely restructured the root CMakeLists.txt to (hopefully) make it a little more readable and accessible to users. In particular I:
- created two new files: `cmake/OpenCVPreamble.cmake` and `cmake/OpenCVConfigure.cmake` which contain parts of the configuration process which don't directly affect users
- reordered all of the `OCV_OPTION` declarations to be under more consistent section headings and sorted alphabetically
- normalized the formatting of line breaks and section headings
- added a new "Language Bindings" section, where users can toggle which languages they want bindings for

Most of the changes are aesthetic, however I've made some other important changes which should be noted:
-  Docs are off by default
- Tests are off by default
- Perf are off by default
- Bindings (for all languages) are off by default

For the first three, I made this decision after asking some users who had ever run the tests/perf after building OpenCV, or ever looked at non-online docs. The answers were consistently "never".

For the last, I again asked who used the bindings casually (without the express need to build with them), and again the response was never. I found that making this change significantly speeded up my configure time.