Properly merge global defaults in to empty-hash homepages

The "Reset to default" button on the "RT at a Glance" RT user admin page
sets the preference to {}, not undef.  This worked prior to 9582e25a
because ->Preferences( 'name', { thing => "Default" }) merges in the
defaults into the hash, even if the hash exists.  This is different from
the behavior that 9582e25a assumed, where the hash is a straight-up
fallback which only kicks in if the value is undef.  This caused blank
hompages for users whose preferences had been reset.

Switch back to passing the global defaults to Preferences, which allows
for per-key merging.

Fixes I#30106.
Forwarded messages break attachments with non-ASCII filenames

On RT 4.2.3, forwarded messages lost header info cause RT takes every
header from DB and apply MIME transfer encoding to each as a full line,
thus losing information about the internal structure of the header, if
it has any.

This aim to fix by applying the correct encoding according to rfc2231
before assembling the MIME object. It worths mentioning that we are not
using MIME::Field::ParamVal to assemble the parts, because at the moment
it doesn't know how to do so correctly.

Fixes: #29753.
Merge branch '4.2/rt-forward-encoding' into 4.2-trunk
Merge branch '4.2/homepage-merge-defaults' into 4.2-trunk