Remove unused / wasted buckets from the generic partition allocator.

Instead of quantizing buckets on top of a sea of mostly unused buckets, we now
allocate only as many buckets as needed and map size -> bucket more carefully.
We go from 512 buckets to 72, which is a memory saving in the BSS section.

We also shrink the size of a PartitionBucket itself. By storing the bucket
size directly (and packing it well), we see that the "root" pointer member is
no longer needed apart from in a debug build.

The new approach to size -> bucket mapping allows us to push three branches
out of the hot path: the integer overflow check, the size check in
QuantizedAllocation and the size check to determine whether to forward the
allocation to the underlying allocator.

BUG=327095
R=tsepez@chromium.org

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

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