Use unique identifier for self-package decl. Fixes #155.

The problem was that I rely on a hack. Default alias of a package is added to
the package scope and it points to the package itself. Can't remember exactly
the reason for this, but something related to pretty printing. Perhaps in a
perfect world it can be refactored properly, but for now I'm adding one more
hack to make this package alias unique. Because apparently some libs use the
default alias as alias for a 3rd party imported package, which shadows the
self-package decl and results in type inference failure.