cannot_oppo(): slight simplification
- compatible_overlapping_connections: fix bug in condition
- get_sa_info: document that last parameter is output
- sprinkle const where appropriate
- fix formatting mistakes in state.h
- untangle and simplify foreach_states_by_connection_func
  + renamed it to foreach_states_by_connection_func_delete because that's
    what it does
  + since the only function supplied for parameter successfunc was
    delete_state_function, I eliminated the parameter and inlined
    the function.
  + same_phase1_no_phase2 was the only comparefunc that used pass parameter.
    It was used in a test that could never succeed: pass == 2
    where pass could only be 0 or 1.  So I deleted the test.
  + there being no users of the pass parameter, I deleted it.
  + The arg parameter to comparefunc was alway c->newest_isakmp_sa.
    Since c was also being passed, I elminated the arg parameter,
    both to foreach_states_by_connection_func_delete and to
    comparefunc
- improve show_states_status:
  - reduce scope of variables
  - replace heap allocation with stack allocation (using a Variabe
     Length Array, a feature added in C99).
replace calls to time(0) with time(NULL)
cosmetic improvements
Introduce monotonic time and systematically separate it from real time.
This tries to distinguish things unified in b7f0b35aadf214c0b50140ee7a9397c0c7b4f192.
Merge branch 'master' into hugh-2014may
Merge branch 'master' into hugh-2014may
get range checking right for SPI generation
Wrap time_t so that dimensional analysis will be enforced by the compiler.

realtime_t: absolute UTC time.  Might be discontinuous due to clock adjustment.
monotime_t: absolute monotonic time.  No discontinuities (except for machine sleep?)
deltatime_t: relative time between events.  Presumed continuous.

A good compiler should produce identical code for these or for time_t values
but will catch nonsense operations through type enforcement.

Ditch struct pubkey's last_tried_time and last_worked_time since they
were set but never used.  The NO_TIME kludge was only used to set them
so that was ditched too.

Generally print any time_t value as long, not unsigned long, since
time_t is usually signed in UNIX-like systems.

Renamed timetoa to realtimetoa to reflect what kind of time it deals
with.

Remove dns_string_rr and dns_string_datetime declarations: they don't
exist.

Tighten up init_timer's handling of environment variables.  But should
they be used at all?
Merge branch 'master' into hugh-2014may

Conflicts:
	programs/pluto/kernel_pfkey.c
Merge branch 'master' into hugh-2014may
Merge branch 'master' into hugh-2014may
Merge branch 'master' into hugh-2014may
Merge branch 'master' into hugh-2014may

Conflicts:
	programs/pluto/plutomain.c
Pluto option parsing:

Add information to long_opts[] and systematically use it to:

- print --help (eliminating the hard-to-maintain separate table)

- systematically warn about obsolete spellings

- declare all but one spelling of an option obsolete

  Synonyms obsoleted: noklips, use-none, useklips, use-auto,
  usenetkey, coredir, ipsec_dir, foodgroupsdir, debug-nat_t,
  debug-nat-t, debug-crypto, debug-klips, debug-netkey,

- give more helpful error messages
Merge branch 'master' into hugh-2014may
- define and use ttoulb (text to unsigned long, with an upper bound)

- define and use TIME_T_MAX

- describe the kludge that is UNDEFINED_TIME
- get rid of obsolete atobytes, atodata (use ttodatav instead)
- get rid of obsolete bytestoa, datatoa
- replace many uses of atoi and strtoul with ttoul or ttoulb
  This results in superior error detection and reporting.
- tidy eroute.c and spi.c
Merge branch 'master' into hugh-2014may