Improves kv_free() internals and usages. Simplifies through memset(0)ing
*kv and removing NULL checks before free(), once free(NULL) is ok, also
never set/get or alloc/release rule_kv[0], which enable the removal of
checking for non KEY_TYPE_NONE keys on kv_free() before action.

Shared with fellow OpenBSD developers back in September, no objections.
Regress tests ok.