Before this change the API was kind of upside down: a function that
allocates memory was returning void, while a function that doesn't
allocate memory neither makes any system calls could fail. The former is
snl_init_writer() and the latter is snl_finalize_msg().
Now result of snl_init_writer() should be checked and snl_finalize_msg()
always succeeds. We don't store the error for the later. This makes
snl_abort_msg() unused inside the library, but we would leave it there,
since it may be used by an application to reset state of the writer.
While here, also assert(3) that the library use is correct, rather than
try to handle the misuse. Certain functions require writer to be an
initialized state, and certain require the opposite.
Note that this change leaves world compilable, as well as utilities
working, but libpftctl now has even more unchecked calls into the snl(3)
library. This will be handled separately.