Backport source role for linking to files in the cpython repo.

Georg added this role in our 3.2 doc tools and gave the greenlight for a
backport on python-dev.

This code is a simplified version of the 3.2 code; the version of Sphinx
used with Python 2.7 doesn’t have the function used to parse markup like
:role:`text to be displayed <text to be processed>` (I was persuaded it
was a standard reST construct, but it is actually a Sphinx innovation
that has to be supported explicitly in role code —I’ll be damned).  It
is thus not possible to write for example :source:`the NEWS file
<Misc/NEWS>`, but :source:`Misc/NEWS` will work.
1 file changed