Add allowed and denied parms to access check routines

Affects:

fsal_test_access
fsal_check_access
cache_inode_access_sw

These parms allow access check to return the specific access mask bits
that were allowed and denied if the caller desires.

These will be used by high level permission checking to make some
more complex decisions, also, it will allow the protocol ACCESS routines
to make a single access check and be able to identify which bits should
be returned to the client.

Also, a flag is added to allow ACL interpretation to not stop at first
applicable DENY ACE. This will be used by NFS v3 and v4 ACCESS ops to
determine access in a single pass.

Signed-off-by: Frank S. Filz <ffilz@us.ibm.com>
Fixup some error translations

New error: CACHE_INODE_BADNAME

ERR_FSAL_ISDIR -> STATE_IS_A_DIRECTORY

CACHE_INODE_BADNAME -> STATE_INVALID_ARGUMENT
CACHE_INODE_BADNAME -> NFS4ERR_BADNAME
CACHE_INODE_BADNAME -> NFS3ERR_INVAL (v3 doesn't have BADNAME)
CACHE_INODE_BADNAME -> NFSERR_IO (v2 doesn't even have INVAL)

In nfs4_sanity_check_FH, if required_type is DIRECTORY, return
NFS4ERR_SYMLINK or NFS4ERR_NOTDIR as appropriate.

Signed-off-by: Frank S. Filz <ffilz@us.ibm.com>

Conflicts:

	src/Cache_inode/cache_inode_misc.c
	src/Protocols/NFS/nfs_proto_tools.c
	src/SAL/state_misc.c
	src/include/cache_inode.h
Have cache_inode_get_changeid4 check trust of attrs

This makes changeid more resilient to attr changes outside Ganesha.

Signed-off-by: Frank S. Filz <ffilz@us.ibm.com>
Use allowed/denied return from cache_inode_access_sw to simplify v3/4 ACCESS

By using the ability of cache_inode_access_sw to return the set of
allowed bits combined with the ability to ask for ACL evaluation to not
terminate on an applicable DENY ACE, we can make the access determination
for ACCESS with a single permission evaluation.

Also, provide a shared routine for performing the ACCESS logic.

Signed-off-by: Frank S. Filz <ffilz@us.ibm.com>

Conflicts:

	src/Protocols/NFS/nfs3_Access.c
	src/Protocols/NFS/nfs4_op_access.c
	src/Protocols/NFS/nfs_proto_tools.c
	src/include/cache_inode.h
	src/include/nfs_proto_tools.h