Improve on 0c56b9b3e5dc1b5457814db1de31032ca012f839.

- The options state really belongs with the hook when the instance is created.
  Better to pass it in the initializer than to have a separate `with` method
  for setting it.
- No need to wrap/unwrap the block with a proc an extra time; we can just
  pass the proc directly into the initializer.