cleanup style a bit
bump cpphs dependency, fix unliteration

Unlit broke on literal files that contained both \begin{code}...\end{code}
chunks and bird-style regions outside code chunks. Offending style was
used by some Agda's papers.
fix inefficient breakString

Previous breakString failed to parse superlarge strings used by Alex to store DFA
state through ghc extensions.
add expensive optimization options
handle data and newtype datafamily instances
fix string handling and implement string continuation
fix handling of --, ->, =>, :: in operator names
handle existentially quantified datatypes
use more recent text dependency
support newtype associated data declarations
strip bangs, contexts and foralls for every constructor of a datatype
handle pattern synonyms and foreign imports
tweak .gitignore to be more haskell-specific
add --ignore-encoding-errors flag to continue processing when file with non-utf8 encoding is encountered
fix treatment of type families
use tasty to organize tests, add tests for toplevel functions without signatures
rework sorting of tags, implement tags of toplevel functions - introduce new repeatable kinds of tags that later are resolved to single unique tag, fix tests
fix O(n^2) algorithm when merging sorted tags for individual files
disable tracking of tag prefixes when collecting vim-style tags
place tests unter tests/ directory, cleanup cabal file a bit