Fix on current Rakudo, implement in terms of Blob

- Str.encode('UTF-8') results in a utf8 type, and utf8 ~~ Buf is false,
  so switch Buf to Blob so it can handle utf8 or Buf as input.
- Since this algorithm is in terms of bytes, switch it to operating on
  the Blob, and have the Str method encode the string to utf8.
- Add a test for running CRC32 on a buffer containing invalid utf8.