implemented data structure for concept hierarchy,
wrote function type for extraction of hierarchy from graph
Add parser for OWL 2 functional-style syntax

Implement a parser for the OWL 2 functional-style grammar.

Signed-off-by: Maximilian Marx <mmarx@wh2.tu-dresden.de>
Add basic file-parsing frontend
Ignore more files

Ignore profiling output.
Merge pull request #1 from mmarx/pickup/fowl

Pickup/fowl
Fix license headers

Replace “GPL3” by “GPL-3” to silence a cabal warning.
Fix copyright years
Ignore non-default hsenvs and hsenv.log
Fix the build

Fix building HEAD by commenting out the extractHierarchy stub, which fails to compile due to referencing the undefined type CHierarchy.
Ignore named dist/ folders

Named hsenvs rename the cabal output directory to dist_<name>. Ignore
them.
Fix building with base-4.5

Not everyone is already on GHC 7.6, thus add support building with
7.4.
Merge branch 'base45'
Convert data into newtype where applicable

Use newtypes instead of data declarations where possibel to save on
runtime overhead.
Add basic profiling support to cabal file

Unfortunately, cabal-1.16 has a nasty bug where it ignores
ghc-prof-options on executables[0] even when executable-profiling is
enabled. Hence, to actually make use of this, you have to use
cabal-1.18. Apart from this, however, cabal-1.10 is more than enough,
so we don't actually depend on a later version.

[0] - https://github.com/haskell/cabal/issues/1199
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.