Improve flow handling in dpctl.

This makes the handling of defining and printing actions more consistent in
dpctl.  The flow portion of the output of "dump-flows" can now be used as the
input of "add-flows".  Flows can be added on the command line with the new
"add-flow" command.
Fix commit 8bdd107e0 (jiffies linking error) when not running on Red Hat.

From David Erickson <derickso@stanford.edu>.
Fix typo in user message.
Fix -v, --verbose options to userspace programs.

Now providing an argument to these options works as documented.
Add utility functions for generating random numbers, and use where appropriate.
Respond to echo requests in OpenFlow implementations.

Nothing yet sends such requests.  This is preparation for their
use in following commits.
Add "ping" command to dpctl for testing echo requests.

Also may be useful for latency testing.
Add "benchmark" command to work like "benchmark-nl" with echo requests.

Suggested by Justin.
Drop "benchmark" netlink message and "benchmark-nl" dpctl command.

The new OFPT_ECHO_REQUEST and OFPT_ECHO_REPLY OpenFlow messages
have the same functionality and are more general (in that they
are not Netlink-specific).
Make the secure channel and controller send out keepalives.

It can happen that the secure channel thinks that it is connected
to the controller, but in fact the connection has dropped.  For
example, a switch intermediate between the secure channel and the
controller could have a flow inserted, due to a malfunction, that
causes packets in one direction or the other to be dropped.  When
this happens, the Linux kernel's TCP implementation will continue
retransmitting packets for somewhere between 13 and 30 minutes,
depending on the connection's retransmission timeout (according
to linux/Documentation/networking/ip-sysctl.txt) with the default
Linux settings.

We want to detect the lost connection and re-connect much faster
than that.  We use OpenFlow echo request and reply messages: if
no message is received from the controller for N seconds, we
send out an echo request.  If no reply (actually, any message at
all) is received for an additional N seconds, then we assume
that the connection has been lost, and reconnect.
Announce fail-open mode more aggressively in secchan.

Without this change, the secure channel announces that it is
entering or exiting fail-open mode only when an OpenFlow
message actually arrives from the local datapath.  Thus,
when no packets arrive on any switch port, the secchan
never enters fail-open mode.  Functionally, this makes no
difference, because there are no packets to switch anyhow
in that case, but it makes the log harder to interpret
since it's unclear whether the controller connection is
actually up.

With this change, the secure channel announcing that it is
entering or exiting fail-open mode is not tied to receiving
a packet on a switch port.  Thus, the log is easier to
interpret.
Fix segfault when SSL_connect or SSL_accept reports an error.
enabled veth tests, cleaned up code dupe, made paramss better
updated learning switch tests
Fix typo in comment.
minor changes
minor changes
adding learning switch tests back
updated instructions
doc bug