Fix scope issues with function vs variable binding

It is currently possible that variable names chosen for some inner
binding shadow the names of the variables bound by outer binding
constructs. We either might want to disallow that, or at least have
(possibly optional) compiler warnings. This will be addressed as a
separate issue later, though.

This changeset fixes issues with bindings from an outer scope being
incorrectly preferred to bindings from an inner scope. It makes sure
that variable references behave correctly in the sense of lexical
scoping.
Regenerate the joxa-compiler AST
Fix deadlock issue in concurrent compiler

This fixes an issue where the concurrent compiler would get into a
deadlock when there would be more than two namespace declarations in
one source file and at least one interdependency between those
namespaces.

The problem was that the concurrent compiler only got a list of all
namespace dependencies on a per file level, but not on a per namespace
level. Hence, it was possible that for some namespace `sample-ns` the
list of namespace dependencies would also contain that very namespace
itself, e.g., it would be `['sample-ns']`. As a consequence, it would
wait indefinitely for the compilation that it was itself responsible
for. The obvious fix that is done here now is tracking the dependencies
on a per namespace level instead of on a per file level.