Cleanup use of the bash "-x" flag

Removed the bash "-x" flag from all of the test files, and instead
use it only in the broctl-test-setup script used by all tests.
Improve the build and setup scripts for the broctl tests

Added a new Makefile target "rerun" that reruns any failed tests in
order to avoid having to run "btest -r" manually.  Added another
Makefile target "cleanall" that provides an easier way to remove
the broctl test build directory.

There was no way to specify additional flags to "configure" that are
needed to build Bro, without hand-editing the build script.  Fixed by
allowing a user to define BROCTL_TEST_BUILDARGS containing any needed
configure options.

If the "configure" script failed, then there was no way to run the
tests without manually removing the broctl test build directory and
rebuilding.  Fixed by always running the "configure" script instead
of only when the build directory doesn't exist.

Removed the broctl-path script so that the broctl tests can be run
without needing the broctl test build directory.

Running the test suite the first time takes a long time and consumes
hundreds of MBs of disk space before any tests are run (due to building
Bro), which can be a waste of resources if one just wants to quickly
run both the Bro and broctl test suites.  Fixed by allowing a user to
define BROCTL_TEST_USEBUILD which will use the Bro default build
directory (instead of a custom build directory for the broctl tests).

Remove the tar file containing the Bro install before doing the build
in order to avoid any chance of using an old tar file (when the current
build fails).

Remove the temporary bro install directory before doing a build in
order to avoid a previous "make install" failure causing the user to
have to manually remove that directory.

Added a few more error checks to the build script to better report
errors to the user.
Improve testing of broctl start and stop commands

Added several new tests (slow start of Bro, slow stop of Bro, starting
and stopping a large number of nodes on one host, restart with "--clean"
option).  Improved most of the existing tests by testing additional
aspects of the start and stop commands (such as sending crash reports,
logging to stats.log, and more test cases when a node crashes).

The "bro" test script now recognizes two new options in its config file:
"slowstart", and "slowstop".  These can be used to simulate a Bro
that is slow to initialize or that is slow to stop (i.e., cannot
be terminated with SIGTERM, so broctl must fallback to using SIGKILL).

Added a "sendmail" test script that can be used in place of the real
sendmail (the test script is faster and easier to test with).

Added a new function "replaceprefix" that any test can use.  It
replaces the text "@PREFIX@" in a test-specific file with the
test-specific Bro install prefix.

Added a new command-line option "--peers" to the diff-status-output
canonifier that indicates whether we want to include the "Peers" column
of the broctl status output in the diff (when we're not running the real
Bro, then the values in that column are not predictable or useful).
Update the broctl testing README
Improved diff canonifiers

Improved a couple diff canonifiers and added a few new ones in order
to do more thorough checking of test output.
Add tests of env_vars with myricom and pf_ring plugins

Added tests using the env_vars option (in broctl.cfg and node.cfg) to
add or override environment variables with the myricom and pf_ring plugins.
Add more tests of the broctl cron command
Improve error output

Improved some error messages in the test setup script and removed
another "-x" flag from bash in one of the tests.
Remove redundant plugin initialization

Patch from Justin Azoff to remove a redundant plugin initialization (as a
result of this bug, exceptions were not being caught).
Use getattr for looking up plugin methods

Patch from Justin Azoff to simplify plugin code.  This patch changes
the previous behavior slightly because instead of only calling the
cmd_XXX_pre/post functions for plugins that override the base class
function, now we always call the function (the base class function
is always just a noop, so this doesn't produce any side effects).
Also, in the event of a future bug in broctl where the getattr lookup
fails, then broctl will now terminate with a Python stack trace
instead of silently ignoring the problem.
Add more testing of sending crash reports
Merge remote-tracking branch 'origin/master' into topic/dnthayer/test-improvements
Add tests of the to-bytes.awk helper script

Also fixed some code formatting in to-bytes.awk so the code is easier
to read.
Add tests of the archive-log script

Added tests of the archive-log script, to verify that it archives
(with or without compression) a specified log file, and generates
a connection summary report if the conn.log file is being archived.
Enable dead hosts caching while in cron mode

Patch from Justin Azoff to enable dead hosts caching while in cron mode.
Add tests of the make-archive-name script

Also fixed some formatting in make-archive-name so the comments
are easier to read.
Add tests of various broctl options

Added tests of the following broctl options:  croncmd, sitepolicypath,
broargs, timefmt, makearchivename.
Fix plugin init return values

The myricom plugin wasn't explicitly returning a value from its init
method, so it was being disabled as a result.  Fixed return values
in the init method in the myricom and pf_ring plugins.  Also added a
debug message when a plugin is disabled so that this issue is easier
to diagnose in the future.
Improve broctl output formatting

Increased width of node name column in the status, top, df and print
command output in order to ensure column alignment when longer node names
(such as "worker-1-10") are in use.  Decreased width of some columns in
the top command output in order to keep the line length less than 80.
Increased length of the divider line in the capstats output.
Fix broctl top on OS X Mavericks

The top command output changed in OS X Mavericks, which was breaking
the broctl top command (the column numbers that the top helper script
needs to use are different in Mavericks).  Also noticed that the grep
command used by the broctl top helper script was not completely
filtering out the first sample output of top (because there are
multiple launchd processes).  Fixed both issues (should also work
on older versions of OS X).