client: switch ll_* methods to Inode* arguments

This commit implements a set of API changes proposed by
"David Zafman" <david.zafman@inktank.com>.

The principle change is consistently use Ceph Inode pointers as
context for inode operations, in place of materialized snapid,
inode# (vinodeno_t) tuples.

This provides a strictly handle-based interface to users.  They can either
do lookups themselves, or call a lookup method to get an Inode* from a
vinodeno_t.

(Build fixed in later commits, e.g., SyntheticClient.cc.)

Signed-off-by: Matt Benjamin <matt@linuxbox.com>

Conflicts:
	src/client/Client.cc
	src/client/Client.h

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
client: expose layout information

This allows us to construct pNFS layouts and DS filehandles that
match the Ceph clustering, placement, and striping structure.

(Includes pieces of API v2 by Matt.)

Signed-off-by: Matt Benjamin <matt@linuxbox.com>

Conflicts:
	src/client/Client.cc

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
client: direct read/write methods that bypass cache, cap checks

These methods were created to implement pNFS data server support,
bypassing cap checks since the pNFS MDS holds a cap on behalf of
the client, realized in the recallable layout.

(Includes pieces of API v2 by Matt.)

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
client/SyntheticClient: adapt to new ll_* interface

(Includes pieces of NFS interface widening by Adam.)

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
client/fuse_ll: adapt to new ll_ interface

This adapts the FUSE client to David Zafman's proposed interface
changes.

(Includes pieces of NFS interface widening by Adam.)

Signed-off-by: Matt Benjamin <matt@linuxbox.com>

Conflicts:
	src/client/fuse_ll.cc

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
libcephfs: expose new client ll_ interface

This patch exposes all changes made for interfacing with Ganesha
and layout support and David Zafman's proposed modifications to
the low-level API.

Signed-off-by: Adam Emerson <aemerson@linuxbox.com>
Signed-off-by: Matt Benjamin <matt@linuxbox.com>