C++: Shorter main() and less arguments for some functions

 - Create `worker()` instead of `lambda[]()`
   - I've moved `g, a, b, c, ar, orig0` into the `worker()` for readability. It increase amout of calculation but negligible.
 - Create `clamp()` instead of `clamp[]()`
 - Modify `tracer()`'s argument and result type
   - Now `tracer()` just return the value, it will not modify the references.
 - Introduce [AAA style](http://herbsutter.com/2013/08/12/gotw-94-solution-aaa-style-almost-always-auto/)
   - Some initializer are still traditional style for compatibility reason.