Basic support for PDF hyperlinks

- creation of the PDF annotations are postponed until Canvas.append()
  - they need to be specified in page coordinates which are not known at
    the time of typesetting
  - it is possible that a canvas is discarded eventually, which would
    result in (duplicate) link annotations appearing at the wrong
    location
- only rST URI references are supported for now

Notes:
- a single MixedStyledText link is split up into a separate annotations
  for each span. This should be a single annotation (unless the MST is
  split by a line break).
Avoid splitting up annotations
Show links in blue

Conflicts:
	rinoh/frontend/rst/nodes.py
Support hyperlinks to destinations within the PDF

- a Referenceable translates to a named destination in the PDF
- a Reference translates to a link annotation
- like annotations, destinations are only saved on canvas placement

To do:
- in-line targets (rST) are not yet supported
- the Dests/Names array in the PDF should be sorted by key
- the table of contents destination is missing
Should have checked in these files a long time ago
Some refactoring of annotations and destinations
Support reStructuredText body-level target elements
Support inline named destinations

Somewhat hacky. To be cleaned up.
Handle destinations as annotations
Every Flowable can have an ID

- to serve as destinations for hyperlink targets
- set destination only if at least part of the Flowable was rendered
- but still only Referenceables can be textually referenced
  (though a PAGE reference could be made to any Flowable)
rST: avoid having to pass the ID for each Flowable

Set the ID after instantiation, in BodyElement.flowable()
Fix NumberedParagraph

- using a DirectReference created an unwanted (and broken) hyperlink
- the NumberedParagraph subclass should determine which referenceable's
REFERENCE is used as the number
a DirectReference should not create a hyperlink

Also attempt to clean up NoteMarker(WithNote):
- NoteMarker is always a REFERENCE (the default for Reference)
- introduce NoteMarkerBase analogous to ReferenceBase
Set destination only if part of the flowable was actually rendered
Allow specifying a custom label/number for headings

- used when the 'custom_label' style attribute is set to True
- allows using the docutils-generated section numbering
Allow specifying a custom label/symbol for footnotes

Notes:
- duplicates some code from Heading
- super() runs into trouble with the NoteMarker classes
Support reStructuredText citation/citation_reference
Add optional pre/suffixes to labels (replaces 'number_suffix')

Use for rST citation labels.
Move custom label code to Label(Style)
Small improvement to Label(Style)

- get rid of separator (can be included in suffix)
- rename pre/suffix to label_pre/suffix