Make CURF.id about 2.5x faster
Make CURF.id about 2.5x faster

- don't recurse into any directory that starts with '.'
  Instead of just ".", ".." and ".precomp".  Technically, this should
  probably be replaced with a check for a valid identifier (at least
  when recursing).  This change makes sure we skip any .git dir.
- check extension with native hash instead of with a Junction
- check extension *before* checking existence on OS
  Checking the OS is much more expensive, so only check for files
  that we think we need.
- rewrite looping logic using a direct iterator and nqp ops
  Instead of [~] map grep combo

Timings done in the rakudo checkout using 'use lib "."'

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