Add broctl option to change the starting Bro port

Addresses BIT-1117
Merge remote-tracking branch 'origin/fastpath'

* origin/fastpath:
  Fix a few sporadic test failures
Make sure logs are archived after broctl kills Bro

During a "broctl stop", if a Bro node doesn't terminate within
a set time interval (defined by the broctl option StopTimeout),
then broctl kills that Bro node with SIGKILL.  In this scenario,
it is unlikely that Bro would have had a chance to execute
"archive-log", so any unarchived log files would be removed as part
of the normal cleanup (via "post-terminate") that happens when
"broctl stop" is issued.

Fixed by adding a new command-line option to "post-terminate"
indicating that the Bro node was killed and "archive-log"
needs to be run in order to archive any remaining log files.

Addresses BIT-1126
Update a test to verify logs get archived when bro is killed
Merge remote-tracking branch 'origin/topic/dnthayer/ticket1126'

* origin/topic/dnthayer/ticket1126:
  Update a test to verify logs get archived when bro is killed
  Make sure logs are archived after broctl kills Bro

BIT-1126 #merged
Improve start/stop command output for crashed nodes

When stopping a node that was crashed, moved the informational
message to be displayed before doing the crash report because it can
take a while to complete (and not seeing any output during that time
is not helpful to the user).  When starting a node that was crashed,
changed the message to indicate that the node was crashed (doing
the crash report can take a while, so the new message helps the
user understand what's happening).

Also added a test for stopping a node that crashes during shutdown.
Fix start helper script to return nonzero on error

Fixed the start helper script to return nonzero when it gets a PID
value of -1 from the run-bro script, which indicates that an error
occurred before attempting to execute Bro.  Previously when this
happened, the start helper would return 0 (indicating success), and
broctl would show a "bro still initializing" message, which doesn't
make sense.
Prevent bad plugin from crashing broctl

Catch an exception that is raised when loading a plugin that does not
override all required methods, and output an error message.
Show error if no lb_procs, and disable unused pf_ring plugin

Disable the pf_ring plugin (i.e., return False from its init() method)
if it does not set any environment variables.
If lb_method is specified without lb_procs, then show error message.
Prevent infinite loop in start helper script

The start helper script gets stuck in an infinite loop (which causes
broctl to hang) if it cannot execute the run-bro script.  Added a
check if that script exists (and is executable), and exit with error
if not.
Simplify code that execs commands locally

Removed the captureCmd function (which could cause broctl to hang
due to filling the OS pipe buffer, although this doesn't actually
happen with any of the current uses of this function), and use runLocalCmd
instead.  This allows removal of some code in the popen wrapper function.
Fix use of memlimit broctl option

Fixed a typo in the run-bro script that was causing the memlimit option
to be ignored (the ulimit commands in run-bro were not setting anything
because LIMIT was an empty string).

Added another ulimit command to show the new limits for debugging
purposes.

Also added a test to verify that memlimit is not being ignored.
Prevent broctl from hanging if a host is disconnected

Added ssh options ServerAliveInterval and ServerAliveCountMax so that
broctl doesn't hang when a remote host becomes disconnected from
the network while an ssh session is open.
Improve handling of dead hosts and closed connections

After each broctl command finishes, remove closed connections from the
list of connections and remove all hosts in the dead hosts list (then
broctl will automatically try to reestablish those connections when the
next broctl command runs rather than the user having to exit and rerun
broctl).  This change has no effect when broctl runs only a single command.

Also, fixed a problem where redundant "connection broke" or "not alive"
messages would appear by only reporting the first time (for each run
of a single command) such an event occurs.
Added ability to expire entries in stats.log

Added ability of broctl cron to expire entries in stats.log that are
older than the number of days specified in the new broctl option
StatsLogExpireInterval.
Rework on the PF_Ring plugin to make it support load balancing with PF_Ring+DNA correctly (two ways).
Add test for broctl cron expiring stats.log entries
Merge remote-tracking branch 'origin/master' into topic/dnthayer/ticket1117
Fix a typo and add a test of the BroPort broctl option
Merge remote-tracking branch 'origin/topic/dnthayer/ticket1117'

* origin/topic/dnthayer/ticket1117:
  Fix a typo and add a test of the BroPort broctl option
  Add broctl option to change the starting Bro port

BIT-1117 #merged