Benchmark gravitation

See 0dbc299fdc4 for the cost of templatisation (between 15% and 20%).
Both before and after, the difference between native and CLR is about 10%.
Actually, instead of documenting ownership, as in `// The caller gets ownership of the returned object.` or `// Takes ownership of |foo|`, the styleguide recommends [passing and returning a `std::unique_ptr`](http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml?showone=Ownership_and_Smart_Pointers#Ownership_and_Smart_Pointers).