Rework IO::Path.slurp a bit
Rework IO::Path.slurp a bit

After nine++'s comment about finding out the size of a file.  It
will now read 1M bytes first, and then loop if that worked.  And
*not* check the size of the file at all anymore.

Also reworked internals a bit to get a more modular approach.

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