Strip a single leading space from bird tracks (#201)

This makes bird tracks in the form

> foo
> bar
> bat

parse as if they had been written as

>foo
>bar
>bat

ie. without the leading whitespace in front of every line.

Ideally we also want to look into how leading whitespace affects code
blocks written using the @ @ syntax, which are currently unaffected by
this patch.
Turn a source code comment into specs
Update test case for lifted GADT type rendering

The parsing of these seems to have been fixed by GHC folk and it now
renders differently. IMHO it now renders in a better way so I'm updating
the test to reflect this.
Don't shadow ‘strip’.

-Wall complains
Make ImplicitParams render correctly (#260)

This introduces a new precedence level for single contexts (because
implicit param contexts always need parens around them, but other types
of contexts don't necessarily, even when alone)
Lower precedence of equality constraints

This drops them to the new precedence pREC_CTX, which makes single
eqaulity constraints show up as (a ~ b) => ty, in line with GHC's
rendering. Additional tests added to make sure other type operators
render as intended. Current behavior matches GHC
Add RankNTypes test case to ImplicitParams.hs

This test actually tests what #260 originally reported - I omitted the
RankNTypes scenario from the original fix because I realized it's not
relevant to the underlying issue and indeed, this renders as intended
now. Still good to have more tests.
Fix rendering of Contents when links are present

Fixes Haddock Trac #267.
Fix wording in the docs
Change rendering of duplicate record field docs

See Haddock Trac #195. We now change this behaviour to only rendering
the documentation attached to the first instance of a duplicate field.

Perhaps we could improve this by rendering the first instance that has
documentation attached to it but for now, we'll stick with this.
Render fixity information

Affects functions, type synonyms, type families, class names, data type
names, constructors, data families, associated TFs/DFs, type synonyms,
pattern synonyms and everything else I could think of.
Reorder topDeclElem to move the source/wiki links to the top

They appear in the same position due to the float: right attribute but
now they're always at the top of the box instead of at the bottom.
Use optLast instead of listToMaybe for sourceUrls/wikiUrls

This lets you override them using eg. cabal haddock --haddock-options,
which can come in handy if you want to use a different layout or URL for
your source code links than cabal-install generates.
Differentiate between TH splices (line-links) and regular names

This adds a new type of source code link, to a specific line rather than
a specific declaration/name - this is used to link to the location of a
TH splice that defines a certain name.

Rather hefty changes throughout and still one unresolved issue (the line
URLs aren't parsed from the third form of --read-interface which means
they're currently restricted to same-interface links). Not sure if
this issue is really worth all the hassle, especially since we could
just use line links in general.

This commit also contains some cleanup/clarification of the types in
Haddock.Backends.Xhtml.Decl and shortens some overlong lines in the
process. Notably, the Bool parameter was replaced by a Unicode type
synonym to help clarify its presence in type signatures.
Group similar fixities together

Identical fixities declared for the same line should now render using
syntax like: infix 4 <, >=, >, <=
Update changelog
Include fixity information in the Interface file

This resolves fixity information not appearing across package borders.

The binary file version has been increased accordingly.
Update changelog
Update appearance of fixity annotations

This moves them in-line with their corresponding lines, similar to a
presentation envision by @hvr and described in #ghc.

Redundant operator names are also omitted when no ambiguity is present.
Filter family instances of hidden types

Currently, this check does not extend to hidden right hand sides,
although it probably should hide them in that case.