Generalize logic for IO::Handle.open with path '-'.IO
Generalize logic for IO::Handle.open with path '-'.IO

- Do not assume $*IN/$*OUT will contain opened handles,
    open them if closed
- If $*IN/$*OUT are set to unopened handle that already has '-'.IO
    as path, then we don't wanna infinilop, so we create a SPESHUL IO
    handle that uses STDIN/STDOUT and return that.

jonathanstowe/rakudo,sjn/rakudo,MasterDuke17/rakudo,salortiz/rakudo,lucasbuchala/rakudo,nbrown/rakudo,usev6/rakudo,rakudo/rakudo,rakudo/rakudo,softmoth/rakudo,softmoth/rakudo,Gnouc/rakudo,rakudo/rakudo,salortiz/rakudo,salortiz/rakudo,raydiak/rakudo,rakudo/rakudo,nbrown/rakudo,sjn/rakudo,MasterDuke17/rakudo,sjn/rakudo,awwaiid/rakudo,tony-o/rakudo,MasterDuke17/rakudo,tbrowder/rakudo,Gnouc/rakudo,usev6/rakudo,rakudo/rakudo,softmoth/rakudo,softmoth/rakudo,labster/rakudo,lucasbuchala/rakudo,salortiz/rakudo,tony-o/rakudo,tbrowder/rakudo,salortiz/rakudo,MasterDuke17/rakudo,awwaiid/rakudo,nbrown/rakudo,sjn/rakudo,lucasbuchala/rakudo,raydiak/rakudo,labster/rakudo,Gnouc/rakudo,tbrowder/rakudo,nbrown/rakudo,MasterDuke17/rakudo,jonathanstowe/rakudo,tony-o/rakudo,MasterDuke17/rakudo,tbrowder/rakudo,Gnouc/rakudo,lucasbuchala/rakudo,lucasbuchala/rakudo,jonathanstowe/rakudo,awwaiid/rakudo,tony-o/rakudo,labster/rakudo,tony-o/rakudo,rakudo/rakudo,labster/rakudo,usev6/rakudo,usev6/rakudo,tbrowder/rakudo,Gnouc/rakudo,sjn/rakudo,tony-o/rakudo,raydiak/rakudo,nbrown/rakudo,usev6/rakudo,labster/rakudo,jonathanstowe/rakudo,labster/rakudo,raydiak/rakudo,softmoth/rakudo,awwaiid/rakudo,nbrown/rakudo,awwaiid/rakudo,tbrowder/rakudo,jonathanstowe/rakudo,Gnouc/rakudo,salortiz/rakudo