Extract message catalog so we have a base for comparison in the following commits
Improved debugging when our loc string extraction fails to match correctly
Allow spaces after the right-hand-side of a loc pair

Otherwise loc strings such as

    Foo->bar( baz => "bat" ); #loc_pair

will not be properly cataloged.
Allow the left-hand-side of loc_pair to be a quoted string

This matches the behaviour of loc_left_pair.  The RHS capture variable
changes from $3 to $10 due to the added capture groups of $re_delim (3
per delimiter + 1 total).
Consistently dequote all extracted quoted strings

Otherwise the delimiting quotes end up directly in our loc strings.
When $re_delim is the only match, substr(..., 1, -1) is used.
Otherwise, we conditionally strip off quotes with a regex.
Remove escapes from double quotes too, not just single quotes

We match both single- and double-quote delimited strings, so the strings
could contain either.
Cleanup automatically reported loc string errors in the source
Message catalog extraction doesn't find q// or qq// quote-like operators

Switch to normal quoted strings instead of diving into the rabbit hole
of extending extract-message-catalog.

Resolves [rt3 #24228].
Look in up to two directories deep for translation files

We don't care about the name.  Launchpad's current exports are under
share/po/*.po.
A usage message for rt-message-catalog

Previously this program died trying to display usage().
Merge branch '4.2/message-catalog-extraction'