Merge remote-tracking branch 'origin/master' into topic/dnthayer/broctl-fixes
Simplify some code for the broctl install command
Change the broctl exec command to run only once per host

Changed the broctl exec command to run only once per host instead of
running once for each bro instance.  Changed the output format slightly
by including both the node and host names in order to avoid confusion.

Changed the hosts() function so that it preserves the order of the returned
node list as it was sorted by the nodes() function.  This keeps the output
ordering consistent regardless of whether a command uses nodes() or hosts().
Adjust column widths for top, netstats, peerstatus commands

Adjusted column widths for the top, netstats, and peerstatus commands to
help keep columns aligned.  Optimized the top command so that it runs
the top helper script only once per host instead of once for each
bro process.
Gather disk usage by host rather than by node

Changed the df command to fetch disk usage info only once per host
rather than once for every bro instance.  Likewise, the output has been
changed to show disk usage only by host (and now shows both node and
host names to make the output easier to interpret).  The output is
also now sorted by node type.

This change affects the way broctl cron stores and reports disk usage (now
by host rather than by node).
Replace the update-stats script with python

Implemented the functionality of the update-stats script directly
in broctl with python.
Add warning to run broctl install if broctl.cfg changes
Code cleanup (no functional changes)

Cleanup some code for style consistency, reformat some comments to fit
on an 80-column display, and remove some dead code.
Code reorganization for the getDf function

Reorganized the code for the getDf function so that it no longer outputs
anything.  Instead, the results (along with any errors) are stored in a
list that the function returns so that the caller can decide what to do.
This also avoids reporting the same error message multiple times for the
same host.
Prevent broctl cron emailing about pseudo-node

Fixed a bug where broctl cron could email about the "$total" pseudo-node
not receiving any packets (which doesn't make sense) by excluding
the pseudo-node from the check of whether any packets are seen or not.

Also some minor code simplification (removed some redundant code).
Code simplification and remove an unused broctl option

Simplified some code, removed the unused "home" broctl option, and
improved a couple warning messages.
Merge remote-tracking branch 'origin/master' into topic/dnthayer/broctld-work
Add warning when broctl node config has changed

Upon startup, broctl will now check if the current node configuration
has changed since the last "install".  If it has, then a warning
is displayed telling the user to do another "install".
Merge remote-tracking branch 'origin/master' into topic/dnthayer/broctld-work
Update test baselines
Change hosts() function in the plugin API

Changed the hosts() function to return a list of nodes instead of just
hostnames (if needed, the hostnames can easily be extracted) so that the
function is more useful.  For example, now it can be used to prepare
a list of nodes, one per host, in order to execute some command once
per host.
Merge remote-tracking branch 'origin/topic/dnthayer/broctld-work'

* origin/topic/dnthayer/broctld-work:
  Change hosts() function in the plugin API
  Update test baselines
  Add warning when broctl node config has changed
  Code simplification and remove an unused broctl option
  Prevent broctl cron emailing about pseudo-node
  Code reorganization for the getDf function
  Code cleanup (no functional changes)
  Add warning to run broctl install if broctl.cfg changes
  Replace the update-stats script with python
  Gather disk usage by host rather than by node
  Adjust column widths for top, netstats, peerstatus commands
  Change the broctl exec command to run only once per host
  Simplify some code for the broctl install command
Fix node config check

Fixed the node configuration check so that removing a node at the end
of the list is noticed.  Also added a bounds check for when a node gets
added.
Use a hash to determine if a config change occurred

Changed the way broctl determines if a config change occurred by
computing a hash value of the configuration and comparing it to
the value computed during the most recent install.
Merge remote-tracking branch 'origin/master' into topic/dnthayer/broctld-work