Factor out OWL2 AST

Move the OWL2 abstract syntax tree into its own module. This has the
neat effect of drastically shortening H.P.O.Functional's export list,
and also makes re-exporting the AST from H.Parser very easy.
Reindent countFromTo
Unroll inClass character range checks
Remove superfluous pack . unpack in fullIRI

export a non-unpacking version of showIRI to avoid unpacking and
repacking it unnecessary.

Signed-off-by: Maximilian Marx <mmarx@wh2.tu-dresden.de>
Straighten up whitespace handling

Do not look ahead for another delimiter if the preceding token was
already was a delimiter. In skipSpaceOrComment, if the initial
whitespace is not followed by the start of a comment, there is no more
whitespace to skip, so don't try to.
Streamline bracketed

In bracketed, we already expect the next token after the tag to be a
delimiter, so we don't need lookahead to determine if whitespace
skipping is optional.
Move comment down
Unfold iUnreserved and ipChar
Replace single-character inClass by char
Bump text and attoparsec, enable -O2
Reduce allocations in Hazel.Parser.OWL.RFC3897