Avoid "uninitialized" warnings when parsing empty templates

Empty templates are used to squash outgoing mail on a queue-by-queue
basis.
re-add attributes to fix IE layout

We still need border, cellspacing and cellpadding attributes to show the
collection list in IE (at least IE7) in the same layout as in other
browsers.

This partly reverts commit f5aa30c9.
Remove the IE-specific need for two <table> attributes on collection lists

The only reason IE padding was wonky without the cellpadding attribute
was because our stylesheet set up different padding for IE.  The blanket
padding is seemingly unnecessary.

The border="0" attribute is unnecessary since a border is set in CSS.

Only cellspacing is out of the reach of CSS in < IE8 because
border-spacing isn't supported.

Less hardcoded attributes in HTML means more flexibility for CSS down the
road.  While this is effectively a no-op commit in terms of rendering,
it's useful to avoid reinstating the two extra <table> attributes.
Correct casing of MySQL
MySQL 4.0 is not supported on RT 4.0; MySQL 4.1 is the minimum required

Combines two conditionals into one since they can both assume the
MySQL version is >= 4.1.
Check InnoDB support via SHOW ENGINES for MySQL 5.6 compatibility

MySQL 5.6 (still in release candidate stage) drops the 'have_innodb'
variable in favor of SHOW ENGINES.  The latter is supported since 4.1,
so we can safely use it across the board.

In my testing on 5.1, I never saw "disabled" when disabling InnoDB via
'skip-innodb'.  SHOW ENGINES always reported "no" despite the engine
being disabled at runtime not compile time.  Hint at this possibility in
the error message for "no".
extract Transaction->QuoteHeader method

Code that is adding "On <date> <person> wrote:" in front of
quoted context is burried in other method, so it's hard to
change style of the quoting. Extract it into a new method.
parse cf date in user's timezone to make it right for strings like "today", "tomorrow", etc
Preserve the state of the per-transaction squelching checkboxes

Now unchecked recipients are preserved across attachment uploads,
article inclusions, and any other action which submits the form but
doesn't submit the update.

Refactors the code to process squelched recipients for use outside of
Ticket/Update.html.

Resolves #18761.
Stop overriding verbatim/code handling and just deal with defaults

Newer Pod::Simple::XHTML versions have changed verbatim/code handling
and it's easier to simply stick with the default behaviour.  We can
style the defaults as we wish with CSS.
Check the return value of RT::URI->FromURI instead of ->Resolver

FromURI always sets a resolver, even on failure.  Error checking which
only looks at ->Resolver is broken and checking ->Scheme on top of that
is just patching over the bug and relying on the internals of
RT::URI::base.  FromURI returns a useful success or failure value; just
use that.
Return a (status, message) tuple on success from RT::Link->LoadByParams

Previously only returned a tuple on failure, which is less than useful.
Move PageWidgets definition earlier in Elements/Tabs

By defining them at the end, nothing could change them when you click
into a different part of the UI.  Articles used to provide a default
search under /Articles/ and this allows that to work again.
Update GotoArticle to act more like GotoTicket

This removes the button and hints in the box what to search for instead.
Add GotoArticle and remove the Ticket page widgets when in /Articles

This means you can't trivially create a ticket when working on Articles,
but having two search boxes and moving the two normal search boxes
around felt even more confusing.
Removing CreateTicket/SimpleSearch renumbered forms

The article tests are made of form_number and want to start using
form_name, but I didn't want to tackle it all on this branch.
Account for field truncation when comparing new values to current values

Without comparing truncated values, a field which is truncated will
always be updated, only to be set to the same value as previously.  This
can occur particularly often when values are pulled from an external
source via RT::Authen::ExternalAuth or RT::Extension::LDAPImport.
localize built-in component/search names

user's saved searches won't be affected.
see also #21377
Make subject tag be non-greedy, to not match all of "[comment] [foo #1]"
don't create DB if we run perl -c on a test file