engine: use rand_r (scalable) instead of rand (protected)

Latency with only 1 node with 29 worker threads:

PERFORMANCE_COUNTER node-count = 1
PERFORMANCE_COUNTER worker-count-per-node = 29
PERFORMANCE_COUNTER actor-count-per-worker = 100
PERFORMANCE_COUNTER worker-count = 29
PERFORMANCE_COUNTER actor-count = 2900
PERFORMANCE_COUNTER message-count-per-actor = 40000
PERFORMANCE_COUNTER message-count = 116000000
PERFORMANCE_COUNTER elapsed-time = 91.960110 s
PERFORMANCE_COUNTER computation-throughput = 1261416.493718 messages / s
PERFORMANCE_COUNTER node-throughput = 1261416.493718 messages / s
PERFORMANCE_COUNTER worker-throughput = 43497.120473 messages / s
PERFORMANCE_COUNTER worker-latency = 22990 ns
PERFORMANCE_COUNTER actor-throughput = 434.971205 messages / s
PERFORMANCE_COUNTER actor-latency = 2299002 ns

Link: http://lists.cels.anl.gov/pipermail/biosal/2014-November/000035.html
Link: http://lists.cels.anl.gov/pipermail/biosal/2014-November/000037.html
Link: https://github.com/GeneAssembly/biosal/issues/784
Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>