Add Twitter Card support

[Twitter Cards][0] are little snippets of information that get displayed in
Twitter's feed when a message includes a link.  This pull adds a few meta tags
to enable this, similar to reddit/reddit@027504a's work for Facebook.

While there is [a Twitter Cards validator][1], it requires pulling the page
itself, which makes this difficult to test.  We also have to make sure to run
it through the validator to get approval before it goes live; it's unclear if
this acceptance process is automated.  The code that adds the Card is protected
by a feature flag to help with this.

There are [some restrictions][2] on filesize for images, but I don't
think we want to deal with that one, at least not yet.

[0]: https://dev.twitter.com/cards/overview
[1]: https://cards-dev.twitter.com/validator
[2]: https://dev.twitter.com/cards/markup
trunc_string: split on word boundaries

This makes it so that instead of seeing text like this:

    This is a long tit...

we'll get

    This is a long...

when truncating "This is a long title".  Usually this is just a minor
improvement, but occasionally odd truncation can [lead to hilarious
results][0].  And, y'know, I don't like hilarity.

We currently only use `trunc_string` in a few places, all related to the
displayed titles or descriptions in Facebook OpenGraph notes or Twitter Cards,
so the impact isn't too terribly great.  We are now including the suffix in the
length count, so that might actually fix a bug.

We don't use the `length` parameter by keyword anywhere, so changing it isn't a
problem.

[0]: http://blogs.hbr.org/2012/07/i-wont-hire-people-who-use-poo/