fix(dev): allow specification of a correct Bison version (#3516)

* fix(dev): use POSIX safe flags for tr

The build rules for the VName test data fail on macOS because we used the
GNU-supported --delete flag instead of POSIX-recommended -d. All the Linuces
support -d just fine with the same semantics, so this has no discernable effect
on the results.

* fix(dev): allow specification of a correct Bison version

Updates #3514. In #3513 we stipulated that Bison 3 must be used. On macOS,
which ships with Bison 2, this requires installing a new version.

However, the obvious way to do so, via Homebrew, brings in Bison 3.3.2 for
which the verifier's grammar file (assertions.yy) contains some no-longer-valid
definitions.  Moreover, Homebrew installs bison as "keg-only" meaning it is not
linked into the user's PATH. This presents a tricky setup problem, since users
configure their path in very different ways.

To address these issues, this change does several small things:

1. Add bison as a macOS dependency.

2. Allow a BISON environment variable to be set, that will be plumbed through
   by Bazel to the environmento of actions.

3. Update the build rules to address the environment variable where set, with a
   default fallback to the existing ("use ambient") behaviour.

* Use 3.0.4 compatible parser class labelling.
4 files changed