tools: make code cache and snapshot deterministic
Use a fixed random seed to ensure that the generated sources are identical across runs.
The final node binary still reseeds itself on start-up so there should
be no security implications caused by predictable random numbers (e.g.,
Math.random()
, ASLR, the hash seed, etc.)