Optimize RenderBlock::lowestFloatLogicalBottom by caching previously calculated values.

This CL moves RenderBlock::lowestFloatLogicalBottom into FloatingObjects, and introduces a small cache to track the previously calculated lowestFloatLogicalBottom for each FloatingObject::type.

On my z620, this is ~25% faster on blink_perf's float_50_100 benchmark, and ~30% faster on android-gn. On oilevent from tough_layout_cases, this is about ~10% improvement.

Linux: 

Without patch: 
Avg floats_50_100: 255.006988ms 
Sd floats_50_100: 6.590191ms 

With patch: 
Avg floats_50_100: 189.995312ms 
Sd floats_50_100: 4.420704ms 


Android: 

Without patch: 
Avg floats_50_100: 6374.133600ms 
Sd floats_50_100: 852.598792ms 

With patch: 
Avg floats_50_100: 4205.389400ms 
Sd floats_50_100: 659.635617ms 


BUG=260903

Review URL: https://chromiumcodereview.appspot.com/23364008

git-svn-id: svn://svn.chromium.org/blink/trunk@157859 bbb929c8-8fbe-4397-9dbb-9b2b20218538