Precompiler: code reformatted, keepLevel and comment options split

The update only contains cosmetic changes (comments, code guidelines)
and defines two options for the precompilation function:
- the "keepLevel" array that lists the trace levels that one wants to
keep.
- the "comment" flag that wraps code in comments instead of removing
it once set.
Precompiler re-written to maintain local context

The precompiler may now be run on JavaScript code that includes a
list of modules. It maintains scopes directly within the AST tree
to keep pointers to the instantiated loggers and the variable names
used to reference the Woodman library within the code.

It is more robust. There are still many ways to write code that bugs
the precompiler. A regular use of Woodman should not trigger any
error though. I adapted the Falafel library to support extending the
AST tree with local context information.

More unit tests defined. Coverage is not perfect but it's a good
start.