test: added the `test` directory.
parser: starting to build a skeleton of the grammar.

I've also added a test for empty files.
lib: we can now declare variables :^)

I've also moved the Problem class into its own module. We'll use
llvm::raw_ostream instead of std::ostream for the problems.
backend: let's use the new Problem class.
lib: be more verbose when showing errors.
parser: added the grammar for parallel statements.
parser: built the skeleton for the grammar.

Not sure yet if everything is as expected.
parser: polishing.
parser: moved some of the code from the parser.y file to lexer.{h,cpp} files.
parser: typo.
parser: vastly improved the code organization.
parser: don't stop on the first error.
utils: fixed the shown line and problem.