Fix style and remove unneeded inline keywords
Redesign RenderLazyBlock to use multiple layout passes instead of a separate pass. This means we don't need LayoutState hacks anymore, but will also be slower. Now that we have correct behavior we should iterate from here.

Note: This doesn't work properly for nested lazy blocks, we need an iterative solution for that.
Make sure nested lazy blocks are always inserted into the set.
Switch back to a document ordered linked list of RenderLazyBlocks so we can more easily support nested lazy blocks. Now we walk the list of lazy blocks in order marking each one for layout and doing repeated layouts until they're all done. This is not going to be super awesome and we might need to find a better way.
Avoid doing work when nothing has changed. This is needed since we mark all lazy blocks as needing layout in lots of cases where the viewport and the rect for the block may be the same.
Expand the viewport rect by 4000px in every direction. This is needed otherwise jumping downward doesn't layout anything above it for scrolling back up.