Switch to locker.py for locker resolution

We no longer import Hesiod directly, instead using locker.py
for locker resolution.  Also, don't raise IOErrors, just return
None.  If the locker is not found or unavailable, syslog if the
configuration says we should.  If any other error occurs, syslog
loudly.  Also syslog if lookup succeeded, but nothing could be
attached.
Transition from ConfigParser to our own subclass

Subclass RawConfigParser ourselves and use that, to allow for
better handling of defaults, as well as per-platform config files.
It also allows us to override getboolean() and always return a sane
value, avoiding a bunch of try/except blocks.

Add some new config values, including whether or not we should
syslog when lockers are invalid or not found.

Add a sample config file
Do not attempt to resolve invalid Hesiod names

Hesiod names can never begin with '.', so never attempt to resolve
them.
Switch to class attachtab from self.mounts

Supply our own class for the "attachtab" functionality, which is
just a subclass of defaultdict(dict), which is what we were
using before.
Add support for per-user attachtab

- Add support for a per-user "attachtab", which is a file with
  newline-separated records in the form
    mountpoint:path
- Rename the method to print the legacy attachtab
- Give the attachtab class a reference to the filesystem to get at
  things like the mountpoint.
- Also, actually use the mountpoint in the legacy attachtab format,
  instead of assuming /mit.
- Add a header line for the legacy attachtab format
- Override Fuse.parse() and store the mountpoint for later access
Update handling of readme file

- Catch KeyErrors if the user put a weird field in 'readme_contents'
  in the config file
- Use the mountpoint field in the class rather than checking fuse_args
  again
- There's a function to tell us if a string ends with a newline.  Use
  it.
Move all the "fake file" handling to a class

Add a dictionary-esque class to deal with fake files, whose
content can either be a string or a callable
Update FIXME comment in code

Instead of an arbitrary 'FIXME' comment, update it to refer to the
actual Trac ticket number
Add debian/source/format

Declare this a 1.0 format package until we deal with it
Add a sample config file

Add a sample config.ini and install it with the docs
Update the man page and release 1.0

Update the pyhesiodfs.1 man page, and release version 1.0 in the
changelog.
Do not expose other users' mounts

The decision to not expose other users' mounts in pyhesiodfs
was deliberate, and not simply a side-effect of implementation, so
the legacy attachtab now merely shows the per-user mounts in the
old format, and pretends that nobody else has anything attached.
Move script name logic to setup.py

Move the logic for changing the script name on different
platforms (seriously, can we please kill this?) into setup.py
because we eventually want to upstream this, or something
Update changelog to note setup.py changes

Note that the logic has been removed from the rules file
and moved into setup.py