static final vars are initialized at first access

See lang spec:

Static variable declarations are initialized lazily. When a static variable v is read, iff it has not yet been assigned, it is set to the result of evaluating its initializer. The precise rules are given in sections 5.1 and 11.30.
a few more finals
- renamed tests to match rest of package naming
fine for final vars to be public. Semantically identical.
Add hop_runner
whitespace