PartitionAlloc: simplify PartitionPage structure some more.

Two important simplifications:
1) Remove the foul union. It isn't necessary if we don't try and put pages on
the active and free lists at the same time. Instead, we can simply tag free
pages as free and mop them up when we next walk the active pages list.
2) Remove the flags field. It's strictly a duplication of information we have
available in other fields. And we hate duplication because it will get out of
sync and cause bugs.
Also, the freed up field can likely be profitably used to avoid having to
re-introduce a union later.

BUG=332282

Review URL: https://codereview.chromium.org/136333002

git-svn-id: svn://svn.chromium.org/blink/trunk@165036 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Refactor RenderStyle::diff to be grouped by type and guard with pointer compares on structs

This patch moves around the checks inside RenderStyle::diff so that as
much a possible the checks for a given structure of data are all grouped
and then guards those checks with a pointer compare on the struct when
possible. This was already done for some of the structs but not all of
them.

I also noticed that the logic for table display types had not been updated
for flex box so I removed the >= TABLE check and replaced it with a
LAST_TABLE_DISPLAY and FIRST_TABLE_DISPLAY guard cutting out a bunch of
if checks for flex boxes.

Similarly we were deep comparing the SVGRenderStyle because we were using
the overloaded operator== on the DataRef<SVGRenderStyle> before calling
into ::diff() to do the real comparison which is a waste. I changed to a
pointer comparison which will reduce the number of duplicate checks for
SVG elements.

While this is definitely a set of micro-optimizations it should reduce
the number of checks for a typical RenderStyle::diff which is very hot
code in all our benchmarks.

Review URL: https://codereview.chromium.org/136693009

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