Clean up the grammar rules and add testing

Rather than parsing a single file, the test executable takes an entire
collection of test source code files which aren't hard-linked in the
source but the user can add new test files without changing the source
code of the test executable. Each test source should be coupled with
the expected AST output given in an unambiguous and humanly
readable/writable format.

* Stabilize the grammar just before adding testing to the parser. It
must parse the given test source and produce proper AST for it.
* Turn the StorageClass lexer rule to parser rule because it's causing
issues with the static imports.
* Simplify the module declaration rule without rewrite syntax
(specifying the root node).
* Remove the ambigous parts of imports and the moduleFullyQualifiedName
rules.
* Read the lines from the source and compare the lines to the
CommonTree.toStringTree() results to the previous comment line without
the comment prefix.
* Print the CommonTree node for the that node that has no AST
description
in the previous comment.
* Change the rewrite rule's first child node of the 'type' parser rule
to
primaryExpression, as the current rule adds a false IntegerLiteral with
no available token information. This is causing a warning message in the
test, as the comment line can't be found with the codeLine returning 0.
* Change the package name to dev.progician.dparser and the grammar to
Dee.g which will produce DeeParser and DeeLexer respectively.
* Show '[pass]' for each test suites/files that passed the checking.
* Skip extra spaces in the AST description.
Add declaration parsing

Build up the declaration rules and AST tree following the reference
["http://dlang.org/module.html"] and partially the
["http://dlang.org/declaration.html"].

* Re-purpose the existing reference test file for declaration only
testing.
* Add import declarations with static/public support, import aliasing
and selective imports without renaming.
* Add parsing of 'enum' declarations.
* Add parsing of 'class' declarations.
* Add parsing of 'interface' declarations. 
* Add parsing of 'struct' and 'union' declarations.
* Add parsing of constructor and destructor declarations.
* Add parsing of unittest and conditional declarations.
* Add dummy assignExpression substituting the primaryExpression in
many places.
* Add parsing of debug/version condition specifications.
* Add parsing of static asserts.
* Add parsing of template declarations.
* Add parsing mixin declarations and template mixins.
Add expression parsing

Build up the declaration rules and AST tree following the reference
["http://dlang.org/expression.html"]. Create a new test file for
the expression parsing testing exclusively. Some expressions can
be faulty or incomplete.

* Add parser rules for the binary expressions down to the
unaryExpression level.
* Add basic unary expressions.
* Add new, delete and casting expressions.
* Add pow and basic postfix expression syntax.
* Add primary constructs.
* Introduce the STMT_EXPRESSION, STMT_RETURN for the lambda rewrite.
* Add rule for lambda expressions and rewrite them in to their full
format.
* Rename the BLOCK_STATEMENT to STMT_BLOCK.
* Remove the FUNCTION_BLOCK token and use the STMT_BLOCK instead.