Get coverage working again

Hopefully without inconsistent compiler detection this time: we'll
do our own compiler detection first, then figure out the coverage
flags second, then figure our our compilation flags third.