[libfko] bug fix to set digest length upon SPA packet decode

This bug was caught with the fko_wrapper.c multi-call tester running under
valgrind.
[libfko] always call free() from zero_free() on all non-NULL buf pointers
[libfko] use zero_free_rv - dead code bug fix found by CLANG static analyzer
[server] compile bug fix for pf/ipfw firewall systems