(Bug 215) Add database table for vgift transactions.

This is the last remaining table from the initial database design, which was
drafted in 2009 but not needed until now.  Some properties of the transactions
are stored in the purchase cart instead of the transaction record; I didn't
want to duplicate information, but we may want to revisit this later.

Because this is a clustered table, it is added to the list in @LJ::USER_TABLES.
There is already a key for vgifts in alloc_user_counter, so we just change it
to use the correct columns from the new table.
(Bug 215) Strip trailing whitespace in separate commit, for clarity.
(Bug 215) DW::VirtualGiftTransaction - methods for working with transaction data.

This was originally implemented in the context of DW::VirtualGift, but
as the project evolved, it was clear these would better be handled as
methods on a new kind of object representing a single vgift transaction.

Several rounds of tweaking have been incorporated into this one patch.
If anything described seems to be missing, it should show up later.
The FIXME lines in particular will go away with the addition of another
new module defining a new shop item class.
(Bug 215) New module DW::Shop::Item::VirtualGift.

This is just the shop backend. I tested it using code like this:

 my $cart = DW::Shop::Cart->new_cart;
 my %opts = ( target_userid => $u->id, vgiftid => 15, anonymous => 1 );
 my $item = DW::Shop::Item::VirtualGift->new( %opts );
 $cart->add_item( $item );
 $cart->state( $DW::Shop::STATE_PAID );  # creates transaction row
 $item->apply or warn "did not apply";   # sets status to delivered
 $cart->state( $DW::Shop::STATE_PROCESSED );  # housekeeping

Seemed to work OK; hopefully this means it will integrate seamlessly with the
shop engine when the time comes.  I left in a FIXME to remind me to check and
make sure name_text/name_html do what I expect in context later, and to fire
a notification when the gift is delivered.

I also changed DW::Shop to use LJ::ModuleLoader instead of having to write out
each individual subclass of DW::Shop::Item and keep it updated.
(Bug 215) New event for virtual gift delivery notification, LJ::Event::VgiftDelivered.

All the fun stuff that comes with ESN.  This has primarily been tested via
/admin/eventoutput.  The link on /manage/settings should maybe not go
live yet, as it's mostly just for testing at this point.
(Bug 215) Add vgift-trans.t for testing transaction methods.

Writing a test seems so easy on the surface... until running it
turns up all sorts of weird bugs in the code... some of them
I was able to fix and others I just had to work around.
(Bug 215) Add methods related to viewing transactions on profile pages.

Not strictly backend, but defining here for convenience.

There is a new transaction URL method which resolves to
http://$username.dreamwidth.org/vgifts/$transid, but that
will 404 until the new controller is ready.
(Bug 215) Requested code style tweaks.
Bug 5041 Include comments search in S2 search module

Simplified and corrected  fix.
Print_search_form method checks if comments are indexed here,
if so adds a "with comments" checkbox.
Currently comments are indexed if the journal being viewed is paid.
(Bug 5041) Include comments search in S2 search module

Style fixes as per review comments.
Text box, comment search checkbox and Search button  on separate lines
Bug 5041 Include comments search in S2 search module

Each element of the form is now in a separate span
which can be styled inline or block.
Appropriate CSS in Tabula Rasa, fix for WideOpen.
Still to do: - check if any other TR children need overrides
- add CSS for non-TR layouts
(Bug 5041) Include comments search in S2 search module

CSS added for Abstractia, Bases, Brittle, Drifting
Negatives and Skittlish Dreams
which don't inherit from Tabula Rasa.
(bug 5283) Convert changeemail.bml to TT

Converts changeemail.bml to TT.
(Bug 5286) Darken Light Gray Text on Foundation Pages

Lynx:

Set $_dark-gray to #636363, name this $inactive-color, then define
$sub-nav-font-color and $pagination-link-font-color and
$pagination-unavailable-link-font-color to be this color.

Note: The white on blue for active Pagination and Sub Nav links
fails AAA for Normal Text. Not fixed as part of this bug.

Celerity:
Changes $_dark-gray to $_mid-gray and defines $_dark-gray as
color to $sub-nav-font-color and $pagination-link-font-color and
$pagination-unavailable-link-font-color using intermediate variable
$inactive-color.

Gradation:
No changes made.

Note: $sub-nav-active-bg (set to $primary-color) fails contrast
check for white text. Not fixed as part of this bug.
(Bug 5314) Summertime: restore controlstrip gradient
Merge pull request #631 from hotlevel4/bug5286/DarkenGrayText

(Bug 5286) Darken Light Gray Text on Foundation Pages
Merge pull request #632 from ninetyd/bug5314/summertime/restore_stripgradient

(Bug 5314) Summertime: restore controlstrip gradient
(Bug 5265) Convert /community/index to TT + foundation
(Bug 5265) Convert the list on /community/manage to TT + foundation

* moves the page from /community/manage to /communities/list
  The form elements for community settings at the bottom are still undone

* modifies the appearance and order of the links to be a bit less jumbled together

* converts from BML to a controller + TT

* converts to Foundation for greater consistency across the site
(Bug 5265) Split settings in /communities/list into their own columns