[WIP] Initial work on integating cmaes.

I started integrating CMAES into Simbody. Right now, everything is in quite a mess.

My objectives with this PR are:

- [x] Get basic CMAES functionality going.
- [x] Get the existing test cases to work (Rosenbrock, Schwefel, etc.).
- [x] cmaes readpara_t settings (e.g., convergence).
- [x] Diagnostics levels and file writing
- ~~[ ] Resuming.~~
- [x] Nice documentation about CMAES in Optimizer.h, describing possible settings.
- [x] No memory leaks.
- [x] Rewrite the test using `SimTK_TEST_` macros.
- [x] Replace abs with SimTK::abs.
- [x] Incorporate @nikohansen's updates to c-cmaes (cmaes_init_final).
- [x] In doxygen, mention that the errcmaes.dat file will be written regardless of the diagnostics level.
- ~~[ ] When to throw an exception upon failure?~~

This PR is going into the `cmaes-features` branch. There's much more to come, such as threading. However, to make this work manageable, those additions will come in subsequent PR's (still into the `cmaes-feature` branch).
It bothers me to see this "global" variable `diagnosticsLevel` referenced in the macro. What is that thing? Could it reasonably be passed as the first argument to the macro instead? Or is that too awkward? I'm not totally opposed to this construct since macros and diagnostics are both oddballs, but it would be nicer to see in the call what's controlling the behavior.