fixed using functions from other sources

Changed ast::Repository's getExternalNamesForNodeId() function to return all known
exported names in the current repository, not just the current source's ones. It
makes more sense to decide whether a symbol is visible on the package level, rather
than on the file level.

Fixed an issue in NodeRepository where removeNode(int) with a source ID would remove
all nodes in the repository, rather than just the nodes in that specific source
file.

This now allows for source code spanning multiple source files. A pretty basic
requirement for a modern compiler, but we're getting there.