Extract concept of many-to-many association and sorting

ObjectCustomFields contain the core concept of taking a set of objects
(custom fields) and applying them either globally or to a distinct
subset of other objects (queues).  Furthermore, it provides a way of
sorting those applications, including dealing with the complexities of
the interaction between global and queue-specific ordering.  This
concept is a useful one to abstract out into a RT::Record (and
RT::SearchBuilder) subclass, named ApplyAndSort.
Rename ApplyAndSort to AddAndSort, as "Apply" already has meaning in RT

While the name ApplyAndSort might seem more intuitive, the verb "to
Apply" already has a meaning in RT, in the context of Scrips.  As such,
rename the class and methods to the more generic Add forms.
Unify global and queue-specific scrip administration pages
Use new AddAndSort interface to apply scrips to multiple queues

This adds a new record type (and corresponding table and classes) to
serve as the linkage between scrips and queues, leveraging the new
AddAndSort record and collection classes.
Update the validator to understand ObjectScrips
Shred ObjectScrip records when shredding a Scrip

Shredder tests now pass.
Sort scrips based on ObjectScrips' SortOrder, not description

This allows differing order of execution of the same set of scrips from
one queue to another.
sort scrips in initialdata by description

this keeps new and upgraded installations on
the same page
We don't need to separate out the list of global scrips

Global scrips are already intermixed with queue-specific scrips in one
list for sorting purposes.
Allow scrips to be reordered and deleted in the web UI
Pass all arguments through for tables with additional columns

This allows subclasses to contain additional properties than those
specified by AddAndSort.
Move Stage to being a property of ObjectScrips, not Scrips

The Stage of the scrip is now declared to be part of the association
between the scrip and the queue, and not a property of the scrip itself.
This, in conjunction with the ability to sort scrip execution order on
a per-queue basis, allows for much greater reuse of a single scrip in
multiple contexts.

As 'Disabled' was previously a stage, but should remain a property of
the scrip, the Scrip table gains a Disabled flag.  While this makes it
more consistent with other records' Disabled bits, it does necessitate
additional calls to ->FindAllRows in some call sites to keep the
previous functionality.
Disabled column map for scrips
shrink number of lines of code
Add missing closing tag (</select>)

This tag has been missing since the element was first added.
process stage when we apply scrips to queues

now stage is property of a link between queue and scrip
Better heading for TransactionCreate scrips and short explanatory text

Finally we'll have some description of the difference in the interface!
Display Normal and Batch instead of TransactionCreate and TransactionBatch

Additionally, disable the displayed Batch option if UseTransactionBatch
is turned off by RT's configuration.
As Disabled is no longer a Stage on Scrips, provide a UI for altering it
check rights when we add/remove scrips to/from queues