Make PageAllocator generic and enhance it to support arbitrary alignments.

PageAllocator no longer refers to "super pages", that is a concept specific to
PartitionAlloc.
The PageAllocator API is simplified to handle randomization automatically if
the client passes a NULL address.
The code to handle aligned allocations was genercized to work on Windows and
also support arbitrary alignments (this will be needed in the next CL in the
series). The new code also uses a simpler and easy to understand strategy.
Finally, make the MappingCollision test run on all platforms.

There should be no functional changes because the super page size remains 64KB.

BUG=324960

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

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