Redefine pioctl_write(); avoid namespace conflict

- Change the definition of pioctl_write to take an extra void *
  into which data can be written.  Some pioctls return data
  (e.g. VIOC_AFS_STAT_MT_PT), others don't (like VIOCSETAL).
  For those that don't, pass NULL for the new argument.
- Update the call to pioctl_write in _acl.pyx to support
  the new function signature.
- Import AFS_PIOCTL_MAXSIZE from afs_consts.h
- Add some comments
- Change "buffer" to "inbuffer" in pioctl_read() to avoid conflicting
  with the Python type of that name.
- Change "dir" to "path" in both pioctl_read() and pioctl_write() to
  avoid conflicting with the Python function of that name.

  These last two changes are not strictly speaking necessary, but they
  help avoid confusing error messages when you make typos.
Add a low-level lsmount function and export it

- Add a low-level function to implement "fs lsmount", and provide
  a docstring.
- Import the necessary pioctl operation for it.
- Add an __all__ attribute to _fs.pyx so we can import * sanely.
Add the high-level lsmount function

Change the import statement for afs._fs to import *, now that
we have defined __all__.

Add the high-level lsmount function.
Add _volume_status() and _fid()

"fs examine" is actually a combination of two PIOCTLs (GETVOLSTAT and
GETFID).  Add low-level helper functions for those (_volume_status() and
_fid()), as well as the VolumeStatus and VenusFid structs.
Add a low-level "fs whereis" function

Implement "fs whereis", returning a list of IP addresses (representing
file servers).  This requires AFS_MAXHOSTS to unpack the list and
the VIOCWHEREIS pioctl.
Add logging support to package

Add support for the Python logging package, with separate loggers
for each submodule.

Use this new logging support to attempt to complain when IP
address conversion fails in _whereis, rather than simply giving up.
Import the submodules in __init__.py

Import the submodules, so that people using the package don't
have to import afs and then afs.fs, because that's just dumb
Update docstrings for Cython functions

Update the docstring for whichcell, because its signature can't
be determine by introspection, and it's exported into afs.fs.

Correct typo in docstring for _lsmount
Stop exporting __all__ and stop importing whichcell

Don't import anything from afs._fs into afs.fs; instead provide
a higher-level whichcell which returns None when the path is not
in AFS (rather than throwing OSError).  Rename the calls to
_fs functions as appropriate.
Add examine and whereis high-level functions

Add high-level functions for "fs examine" and "fs whereis".
Add a convenience function for DNS lookups.
Add logging to afs.fs
Use sizeof() in pioctl_write()

Don't assume that outbuffer is AFS_PIOCTL_MAXSIZE, just call
sizeof() and let the lower layer deal.