Minor fixes to test_single_onion_poisoning

When I wrote legacy/trac#20638 (moved), the unit test had some subtle bugs:

  • a missed return value check in a unit test,
  • a double-free (well, two double-frees),
  • an inconsistent allocation-free construction that would be easy to break in future.

I also want to move a comment.