Allow reading of headerless compressed pages

Summary:
Feature: 2012 InnoDB Compression

The complete version of 2012 compression writes headerless zlib data
blobs.  This is true in both the 5.1 and 5.6 Facebook branches.

This change allows WebScaleSQL to read those pages, in addition to
those with headers.

But, this still writes only with zlib headers, not without.

A later diff will add support to WebScaleSQL for actually writing
these headerless pages.

Needed to backport inflateReset2() from a future version of zlib in
order to reset a decompression stream without allocating memory for its
internal state and with specifying windowBits. This was necessary to
automatically determine whether a compressed page was compressed using
adler32 checksums or not. There should not be any issues in terms of
backwards compatibility with this. After this, a clean build is required
for stress tests to pass.

Test Plan: Tested reading data compressed by the FB branch.  Worked.

Reviewers: pivanof, inaam-rana

Reviewed By: inaam-rana

Subscribers: WebScaleSQL, jtolmer

Differential Revision: https://reviews.facebook.net/D17691
Full support for headerless compressed InnoDB pages

Summary:
Feature: 2012 InnoDB Compression

This exposes more zlib config parameters as system vars. The most
important of these variables is innodb_zlib_wrap which makes zlib not
write adler32 checksums between compressed blocks. The default value for
wrapping is OFF now. This should save some calls to adler32 and some
space. Changes are backwards compatible. In other words old compressed
server data can be read correctly with a server that has this change.

This is because the transaction log records are updated to include the
value for wrap and the compression strategy in addition to compression
level. This was fairly straightforward because the same was done earlier
with compression level. Prior to this change, we stored the compression
level in a byte. Now, the spare bits in that byte are used to store
values for the new options.

innodb_zlib_wrap and innodb_zlib_strategy also effect blob compression.

It's ok to change these values dynamically - it won't break xtrabackup
or crash recovery.

This diff includes the full set of tests that have been accumulated over
the years to continue to confirm this keeps working as we change things
further.

Also, this changes innodb_zlib_wrap randomly in the main stress tests, to
stress test this change as well.

Test Plan:
mtr - with all these new tests, with and without PerfSchema.  All passed.

Plus, this has been in production at Facebook for years.

Reviewers: inaam-rana, pivanof

Reviewed By: pivanof

Subscribers: WebScaleSQL, jtolmer

Differential Revision: https://reviews.facebook.net/D17721