Use unified method for accessing / updating cached rule pointers.

MFC after:	2 weeks
Add missing vdrop() in error case.

Submitted by:	Fahad (mohd.fahadullah@isilon.com)
MFC after:	1 week
POSIX 1003.1-2008: add ENOTRECOVERABLE, EOWNERDEAD errnos.
Use FF02:0:0:0:0:2:FF00::/104 prefix for IPv6 Node Information Group
Address.  Although KAME implementation used FF02:0:0:0:0:2::/96 based on
older versions of draft-ietf-ipngwg-icmp-name-lookup, it has been changed
in RFC 4620.

The kernel always joins the /104-prefixed address, and additionally does
/96-prefixed one only when net.inet6.icmp6.nodeinfo_oldmcprefix=1.
The default value of the sysctl is 1.

ping6(8) -N flag now uses /104-prefixed one.  When this flag is specified
twice, it uses /96-prefixed one instead.

Reviewed by:		ume
Based on work by:	Thomas Scheffler
PR:			conf/174957
MFC after:		2 weeks