Improve shootout-reverse-complement

Lots of unsafe code and lots of branches removed. Also multithreaded.

Rust old: 1.208 seconds
Rust new: 0.761 seconds
C: 0.632 seconds
It's not free, but a single atomic increment and decrement per thread are unlikely to hurt you hear, and will make the safety much more obvious.  If we had a fork-join library even this would not be required and we used a simple let, since the threads are all guaranteed to exit before the end of main().