New VFS module vfs_fruit

This module provides enhanced compatibility with Apple SMB clients and
interoperability with a Netatalk 3 AFP fileserver.

The module intercepts the OS X special streams "AFP_AfpInfo" and
"AFP_Resource" and handles them in a special way. All other named
streams are deferred to vfs_streams_xattr.

The OS X client maps all NTFS illegal characters to the Unicode
private range. This module optionally stores the charcters using their
native ASCII encoding.

Open modes are optionally checked against Netatalk AFP share modes.

The "AFP_AfpInfo" named stream is a binary blob containing OS X
extended metadata for files and directories. This module optionally
reads and stores this metadata in a way compatible with Netatalk 3
which stores the metadata in an EA "org.netatalk.metadata". Cf
source3/include/MacExtensions.h for a description of the binary blobs
content.

The "AFP_Resource" named stream may be arbitrarily large, thus it
can't be stored in an EA on most filesystem. ZFS on Solaris is an
exception to the rule, because it there EAs can be of any size and EAs
are first-class filesystem objects that can be used with normal file
syscalls like open(), read(), write(), fcntl() asf. This module stores
the AFP_Resource stream in an AppleDouble file, prepending "._" to the
filename. On Solaris and ZFS the stream is optionally stored in an EA
"org.netatalk.ResourceFork".

Signed-off-by: Ralph Boehme <rb@sernet.de>
vfs_fruit: add manpage

Signed-off-by: Ralph Boehme <rb@sernet.de>
s4:torture:smb2: add utility function torture_smb2_con_sopt()

Add a utility function that takes an option name as parameter and then
uses the value of the option 'torture:NAME' as share name in a tree
connect.

Signed-off-by: Ralph Boehme <rb@sernet.de>
s4:torture: add boilerplate code for testing specific VFS modules

Signed-off-by: Ralph Boehme <rb@sernet.de>
s4:torture: add wrapper functions

Add wrapper functions that connect two trees with sharenames taken
from passed option.

Signed-off-by: Ralph Boehme <rb@sernet.de>
s4:torture: add boilerplate code for vfs_fruit

Signed-off-by: Ralph Boehme <rb@sernet.de>
s4:torture:vfs_fruit: add test reading Netatalk metadata

Signed-off-by: Ralph Boehme <rb@sernet.de>
Fix AFP_BackupTime byte order

AFP_BackupTime value must be 0x80000000 and all existing defines use
native byte order, not byte swapped.

Signed-off-by: Ralph Boehme <rb@sernet.de>
s4:torture:vfs_fruit: add uintxx defines

In oder to be able to include MacExtensions.h we need uint32 type and
there doesn't seem to be a way includes can pick up
source3/include/includes.h where the types are defined.

Now that we can included MacExtensions.h, drop define of
AFPINFO_STREAM.

Signed-off-by: Ralph Boehme <rb@sernet.de>
s4:torture:vfs_fruit: add test writing Netatalk metadata

Signed-off-by: Ralph Boehme <rb@sernet.de>
s4:torture:vfs_fruit: add tests for resource fork IO

Signed-off-by: Ralph Boehme <rb@sernet.de>