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.