109.55.00

- Improved `bench.mli`'s generated docs and added some usage examples.

  This also partly satisfies issue #3.
- Added the ability to create groups of benchmarks with a common prefix.

  For example, the prefix "Perf" below is created in created using
  `create_group`:

  ```ocaml
  let command = Bench.make_command [
    Bench.Test.create ~name:"Time.now" (fun () ->
      ignore (Time.now ()));

    ...

    Bench.Test.create_group ~name:"Perf" [
      Bench.Test.create ~name:"TSC.now" ...
	```

  and the output shows:

  Estimated testing time 7s (7 benchmarks x 1s). Change using -quota SECS.
  ```
  ┌───────────────────────────────────────────┬──────────┬─────────┬────────────┐
  │ Name                                      │ Time/Run │ mWd/Run │ Percentage │
  ├───────────────────────────────────────────┼──────────┼─────────┼────────────┤
  │ Time.now                                  │  41.38ns │   2.00w │     16.72% │
  │ Calibrator.calibrate                      │ 247.42ns │  32.00w │    100.00% │
  │ Perf/TSC.now                              │   7.84ns │         │      3.17% │
  │ Perf/TSC.to_time                          │   9.35ns │   2.00w │      3.78% │
  │ Perf/TSC.to_time (TSC.now ())             │  13.22ns │   2.00w │      5.34% │
  │ Perf/TSC.to_nanos_since_epoch             │  10.83ns │         │      4.38% │
  │ Perf/TSC.to_nanos_since_epoch(TSC.now ()) │  14.86ns │         │      6.00% │
  └───────────────────────────────────────────┴──────────┴─────────┴────────────┘
  ```