updated bench scripts to bench against Nm

This reworks the bench helpers to namespace them all under `NmBench`
and commonizes the non engine specific aspects (like the `Logger`).
Then using this common stuff, it adds scripts for benching against
Nm.

There are two benches for Nm: one where the source is built once
and then rendered against many times, and one where the source is
re-built each time.  I did this to make sure I was comparing fairly
against RABL.

The results are stored in `bench/results`.  Nm, even with rebuilding
its source unnecessarily each run, outperforms RABL in all cases.