Differentiate different actions when calling CheckCompatibility

When CheckCompatibility was initially moved out to RT::Handle in
aa9e58d, it flattened the various actions into "pre" and "post" -- and
later 38af184 made all database checks "pre".  As the only test in
CheckCompatibility is comparing to "post", the precise value of "pre" is
irrelevant.

To allow compatibility checks to be precisely targetted at stages of the
rt-setup-database process, pass in a different value for the stage of
each.
Detect and warn of configurations with too small max_allowed_packet

MySQL's max_allowed_packet controls the largest ata that can be inserted
into the database; surpassing this causes inserts to fail.  This setting
defaults to 1M -- as RT stores attachments in the database, this is far
too small for most deployments.

Detect and warn of this situation, both when installing and at run-time.
Unlike the other cases in CheckCompatibility, we simply warn, rather
than returning false -- it is _possible_ to run with a small
max_allowed_packet, merely highly discouraged.
Merge branch '4.0/warn-max-allowed-packet' into 4.0-trunk