Fix leaking file handles when loading modules
Fix leaking file handles when loading modules

Since commit efadff2a39641e34a02b32c475b152448d360821 a PrecompilationUnit is
marked uninitialized after closing. When we use an accessor like .checksum
after closing (by !load-handle-for-path), the precomp file gets reopened and
stays that way.
When we load multiple modules with a shared dependency, we will detect that
dependency is already loaded and not call !load-handle-for-path for it again.
Unfortunately we also do not get the side effect of closing the unit this way.

Fix by moving the .close call out of !load-handle-for-path, making the program
flow more clear and using the accessors before the explicit call to .close.

nbrown/rakudo,tbrowder/rakudo,salortiz/rakudo,nbrown/rakudo,tony-o/rakudo,rakudo/rakudo,softmoth/rakudo,MasterDuke17/rakudo,softmoth/rakudo,salortiz/rakudo,tbrowder/rakudo,tony-o/rakudo,tony-o/rakudo,salortiz/rakudo,softmoth/rakudo,nbrown/rakudo,rakudo/rakudo,labster/rakudo,tbrowder/rakudo,tony-o/rakudo,rakudo/rakudo,nbrown/rakudo,rakudo/rakudo,MasterDuke17/rakudo,salortiz/rakudo,labster/rakudo,tony-o/rakudo,tbrowder/rakudo,nbrown/rakudo,labster/rakudo,nbrown/rakudo,softmoth/rakudo,salortiz/rakudo,softmoth/rakudo,labster/rakudo,MasterDuke17/rakudo,tony-o/rakudo,MasterDuke17/rakudo,rakudo/rakudo,tbrowder/rakudo,MasterDuke17/rakudo,labster/rakudo,labster/rakudo,rakudo/rakudo,MasterDuke17/rakudo,salortiz/rakudo,tbrowder/rakudo