High: fix stonith ignoring its own messages on heartbeat

Since the introduction of the additional F_TYPE messages
T_STONITH_NOTIFY and T_STONITH_TIMEOUT_VALUE, and their use as message
types in global heartbeat cluster messages, stonith-ng was broken on the
heartbeat cluster stack.

When delegation was made the default, and the result could only be
reaped by listening for the T_STONITH_NOTIFY message, no-one (but
stonithd itself) would ever notice successful completion,
and stonith would be re-issued forever.

Registering callbacks for these F_TYPE fixes these hung stonith and
stonith_admin operations on the heartbeat cluster stack.
Low: add debugging aid to help spot missing set_msg_callback()s on heartbeat

In ha_msg_dispatch(), change from rcvmsg() to readmsg().
rcvmsg() is internally simply a wrapper around readmsg(),
which silently deletes messages without matching callback.

Use readmsg() directly here. It will only return unprocessed (by
callbacks) messages, so log a warning, notice or debug message
depending on message header information, and ha_msg_del() it ourselves.
Low: allow heartbeat to spawn the pengine itself, and tell crmd about it

Heartbeat 3.0.6 now may spawn the pengine directly, and will announce
this in the environment -- I introduced the setting "crmd_spawns_pengine".

This improves shutdown behavior.  Otherwise I regularly find an orphaned
pengine process after pacemaker shutdown.
Low: native_print: report target-role as well

This is for the "Why does my resource not start?" guys who
forgot to remove the limiting target-role setting.

Report target role (unless "Started", which is the default anyways),
if it limits our abilities (Slave, Stopped),
or if it differs from the current status.