Retain passwords read from passwdfd in memory if redial is enabled.

Keeping passwords in memory might be a security risk, but let's leave that
choice in the hands of the user.  If they configure xl2tpd to redial then
they should expect that their password will be retained in memory.  If they
don't, then wipe it away once we no longer need it.

Without this, pppd will fail to connect on a redial with an otherwise
mysterious authentication failure.
Avoid type punning: it makes gcc grumpy.

Compilers don't like it when we write to memory as one type and read from it
as another.  Use memcpy instead of typecast games to avoid doing that.
Fix an uninitialize memory access.

new_tunnel() initializes its 'self' field by calling new_call() and passing
the partly-initialized struct tunnel as an argument.  new_call() checks to
see if that 'self' field is NULL.  Let's avoid any ambiguity by using calloc
to initialize the new tunnel's contents to zero before we start populating
it.  This also lets us remove a bunch of explicit initialization and
ensures that all of the 'peer' field is initialized regardless of packing.
Make it possible to prevent xl2tpd from overwriting ppp's ipparam

Many people like to configure their ppp by specifying an ipparam in their
ppp.options and using that in their ip-up/ip-down scripts to configure
routes and such.  Allow those who don't need to know the L2TP peer's IP
address the opportunity to use ipparam in this way by setting
'pass peer = no' in their xl2tpd configuration file.
Document the default duration of the redial timeout option.

It's useful information that's not available anywhere else.
Merge pull request #7 from tphelps/master

Minor tweaks