testing: Add a python dist_certs script using the pyOpenSSL module.

This will be easier to expand test coverage without the limitations
of shell expect and openssl command quirks.
pluto: remove scary union trick from reference counting of struct alg_info
pluto: rejig out_struct so length fields of the struct are never referenced
(They are to be computed, but the code fetched and ignored the value in the struct.)
pluto: fix fixes for reference to uninitialized fields in output struct

The was fixed in 459757b3e33a2e73454575fb2cee389414f02e87 zeroing the structs.
Unfortunately, this just hides bugs.

This patch fixes the two cases (bugs!) where uninitialized fields were used:
out_attr and its clone ikev2_out_attr.  These were actual bugs and the zero
just hid them.

The length member of an output struct need not be initialized.  This
is made more plain by the recent change to out_struct.

Improve or add a few comments.
pluto: improve whitespace in HAVE_LABELED_IPSEC code
pluto: improve parsing of SECCTX attribute
pluto: major tidy of labeled ipsec code

- rename secctx_attr_value => secctx_attr_type because that is more accurate

- rename conf keyword secctx-attr-value => secctx-attr-type for same reason
  Updated documentation.  Old names still work.

- remodularize: move include/packet.h to programs/pluto/packet.h
  but break out the part used by ikeping.c into a new header,
  include/isakmp_hdr.h

- add const attribute to many parameters carrying labels

- use in_struct and out_struct for Security Context Labels in IKE
  packets.  Much more concise and careful than hand-marshalling.

- in netlink Acquire handling, accept more general structure of the
  message.  Fix a leak too.

- extensively check Security Context Labels on their way in via IKE
  and netlink.

- add clarifying comments and comments noting puzzles

- fix formatting and grammar
pluto: add new file programs/pluto/labeled_ipsec.h
fallout from renaming secctx-attr-value => secctx-attr-type

(Mostly fixing testing reference files and sanitizer scripts)
delete state message is a log entry besides a DBG
testing: change ikev2-29-no-rekey, ikev2-payload-reserved-flags-01 to good
Pluto: clean up calls to fmt_conn_instance and adjacent code
pluto: improve foreach_states_by_connection_func_delete debug log message

- guard with DBG

- format connection name and instance according to Pluto convention
testing: dist_certs need bash not sh
testing: swan-prep send empty line, when prompted for password,
and not before.
does it need two new lines or three? It is two now
pluto: use this instead of st introduced in
2baa48caf018ec4056c24543272b1a58dab66105
testing: update output.changed deleting state log line
dist_certs: remove bashism (pushd/popd) and restore use of /bin/sh
install.sh: remove bashism (pushd/popd) and use /bin/sh
testing/guestbin: remove unused file init.old

Signed-off-by: Tuomo Soini <tis@foobar.fi>