Manage pNFS Data Servers

* Parallels export manager.
* Moved DS handle creation to pDS ops vector (and *ds.c files).
* Added FSAL op for creation of subsequent pDS ops vectors.
* Added pDS op for creation of subsequent DS handle ops vectors.
* Added pDS op for updating permissions (regardless of export).

+ FSAL_CEPH with minimal support, requires DS {} configuration.
+ FSAL_GPFS manages DS {} at same time as EXPORT {}.
+ FSAL_LUSTRE manages DS {} at same time as EXPORT {}.
-- include circular dependency exposed!

- Merged static one-time-use functions in FSAL/commonlib.c
- Provided default pDS creation/destruction in FSAL/default_methods.c
  (unlike exports).
- Increase refcount size to 64 bits for DS handles, matching others.
- Related minor field/function renaming.

Bug fix: in PutFH, put before get, then comparing old id, could cause
use of dereferenced data.  Always get (inc) new before put (dec) old.

Bug fix: in PutFH, fh_desc.addr should have pointer to data
(match DS side with export side).

Bug fix: missing glist_init() in fsal_pnfs_ds_init()

Bug fix: wrong macro list element in shutdown_pnfs_ds() --
motivating field rename.

Signed-off-by: William Allen Simpson <bill@cohortfs.com>
Acked-by: Frank S. Filz <ffilzlnx@mindspring.com>

Fix FSAL_LUSTRE to compile.
-- brute force move of internal.h structures to methods.h
-- (should probably be split between them)

Make sure fsal_pnfs_ds object is saved/restored with SAVEFH/RESTOREFH with
proper refcounting.

If DS is associated with an export (DS "number" equals export_id), do all the
export permissions checking in PUTFH. Introduce a new field pds_type to
distinguish between "standard" DS that is independent of EXPORT and those that
are associated with an EXPORT. Use an enum for expandibility to support other
types of DS in the future should some other architecture require a different
mechanism.

Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>