use absolute execname when we can in pbc_to_exe

Before this patch it used ARGV[0], which only contains a name like 'perl6'
but not the path to the binary, when this binary is executed as 'perl6'
and found in PATH.
Now it will try to resolv the absolute path to the binary for certain
platforms and will fall back to ARGV[0] if that fails or if the platform
is not supported.
memcpy the correct string length
Merge pull request #1088 from FROGGS/master

use absolute execname when we can in pbc_to_exe