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.