ACCUMULO-2447 Always set PrintWriter on Shell and don't print to stderr.

While we don't have access to the printwriter/outputstream from the jline
ConsoleReader, we can force the user to pass in one (or just make one for
stdout). This will allow unit tests to correctly squash all output into
a bytearray (or similar) instead of having to redirect stderr too (which
would have other repercussions).
ACCUMULO-1936 Make testInstanceOperations a more reliable test.

Avoid pulling scans for users other than root and compactions for
compactions over tables other than the one we're looking at. Slow down
the slow iterator even more.
ACCUMULO-2433 Add a way to still use the exec methods but provide a custom error message on failure.

Fix some tests that I've seen fail to provide better messages on failure to help future debugging
because I can't get them reproduced locally in any reasonable timeframe.