[Chapel Merge] More compact version of revcomp

Branch: refs/heads/main
Revision: 36cc12c
Author: bradcray
Link: Unavailable
Log Message:

Merge pull request #19597 from bradcray/compact-revcomp-same-alg

More compact version of revcomp

This is essentially the submitted revcomp3 program
with some changes to the code to make it more compact
without throwing away its idiomatic nature. The main
change is to use a bytes array to implement the byte->byte
mapping efficiently rather than a table that took a lot of code
to set up. In addition, while passing in an array slice seemed
cute, the fact that we then query its bounds back out again
once we enter the routine felt like a waste of code, so I
switched to just passing in the bounds as distinct arguments.

This required a lame temp variable because using the in
intent led to a compiler bug, captured in #19596 and #19598.

Modified Files:
M test/studies/shootout/reverse-complement/bradc/revcomp-blc.chpl

Compare: https://github.com/chapel-lang/chapel/compare/3e74f2e8ad34...36cc12c6e01b