Implement DuckDuckGo-like ! (or \\) syntax for IFL

Instead of having to pass lucky=1 as a GET parameter you can now enter
a search term beginning with "!" or "\" to have MetaCPAN return the
first result to you.

E.g. searching for "!Plack" or "\Plack" will redirect you to
/module/Plack.

This is an alternative to pressing Shift+Enter on the site to go to
the first result, but the real value is being able to use
e.g. DuckDuckGo to search for "!cpan !Plack" to go to the first
MetaCPAN result.

See-Also: https://github.com/CPAN-API/metacpan-web/pull/269
First stab at twitter cards.

BIG WARNING: please see if there can be escaping problems with the
<meta> tags (mostly the abstract).

Note that MetaCPAN will have to apply at
https://dev.twitter.com/form/participate-twitter-cards

There is still the module card to do, and I'm sure the elements
of the cards for the author and release could be tweaked to be
even better.

If we want to add author information to the release card, we might want
to fold the twitter_card logic in the controller, which might
not be a bad idea at all because if we do that, the TT code will
simply become


  <% IF twitter_card %>
  <% FOREACH item IN twitter_CARD %>
  <meta name="twitter:<% item.name %>" value="<% item.value %>" />
  <% END %>
  <% END %>
twitter cards are dealt with in the controllers
Honor =encoding directive when decoding raw resonses
Remove author from "Recent ++ Activity"
Explicitly call to_app in psgi for performance

as recommened in Plack 1.0018
Revert "twitter cards are dealt with in the controllers"

This reverts commit 9c1d171a82debf631c1765e1617a40daef3cd288.
add module twitter card
Decide against checking =encoding; Just try raw as utf-8

reverts 502a86f
Merge pull request #783 from yanick/twitter-cards

First stab at twitter cards.
Fix off-by-one error affecting pagination

This was reorganized in 9d607400.
The var comparison was moved to after the var was incremented
but the offset wasn't adjusted accordingly.

Closes gh-608.
... and all the duplicates.
Force the name column in the file browser to have a width

Fixes issue #629.
Replace every instance of dist: in the query string

This makes "Search in distribution" when already searching in a
distribution work as expected.
Hide "Search in distribution" link when searching for one dist
Merge pull request #822 from dgl/file-browser

Force the name column in the file browser to have a width
Merge pull request #823 from dgl/dist-search

Fixes for search in distribution
Cleanup contributors list CSS

This removes inline styles, instead using classes and defining the styles
in the css file. It also centers the text alongside the gravatar, and uses
a slightly different way of positioning it
Merge pull request #825 from omega/clean-contributors

Cleanup contributors list CSS
Update contributors.html
URI escape distribution names when linking to rt.cpan.org

Fixes GH #829