Initial import from (cleaned up) tarball.

Signed-off-by: Fred Isaman <iisaman@citi.umich.edu>
Added command line option for showing/hiding packet data

testserver.py now supports command line options --showtraffic
and --hidetraffic, which turn on and off the detailed packet
information output.  The default is off.
Fix import error in st_verify caused by rename during cleanup.
Add basic .gitignore file.

Have git ignore the *.pyc files.
Remove block.diff

Remove a scrap file that inadvertantly made it into the initial import.
Changed s to self

For clarity, changed s to self in class methods which
refer to the parent class itself.
Work around fileid==0 bug

There is a bug, seemingly in the linux client, that causes ls to
"lose" the config directory when its root fileid==0.

$ls
a config foo

$cd config
$cd ..
$ls
a foo
Rework mount infrasctructure

Previously, only RootFS and RootFSObj knew anything about mounts.
This was complicated and bug-prone, and made LOOKUPP nearly impossible
to implement.  Changed to simpler system of generic mount knowledge,
with a mount hiding the directory below.  Mount traversal is done
within the object lookup and lookupp functions, and should be
transparent to the server layer.
EXCHANGE_ID NOT_ONLY_OP error test

Added test EID8 which tests the server behavior regarding NFS4ERR_NOT_ONLY_OP
Better error message when testserver gets socket error.

Print out last line of exception message when encounter an error.
Cleanup fs.py

Mostly whitspace cleanup and removal of obsolete, commented out code.
Implemented OP_PUTPUBFH

The public filehandle is the same as the root filehandle.
They SHOULD be the same.  Eventually we can add a config
option for server admins to set a different public handle.

See draft 23, section 18.20.3, line 25005
Add access_flags to nfs4lib.

Add nfs4lib.access_flags and nfs4lib.access_mask variables. Since there was
much code duplication with other flag scanners, created a general set_flags()
function to do the work.
Implement op_access

Fleshes out the top-level op_access function, and creates stubs at
the object level associated with access flags.
Add principal checks to object operations

Make calls to the appropriate access4_* function to check permission
of principal to do various actions.
Change principal from a string to a class

There is a lot of mapping inherent in the principal, and it will be
easier to deal with that if it can be hidden inside some class methods.
Add owner attribute

Add the owner attribute to objects, and have it automatically set to
creating principal if it is not explicitly set.
Added packer=option to args for NFS4Client.compound

Now the packer to use for packing the compound args can be specified.  This
allows easier testing of server behavior on invalid packets, which cannot
be packed with the default packer.
Illegal Operation Test (in compound tests)

Created st_compound.py for compound tests.  Wrote a test for server behavior
on illegal operation codes.
Fix bug in block startup resulting from principal code modification.