ACCUMULO-3305 Use stopProcessWithTimeout instead of directly using Process API

We don't know if the start of a Process might be delayed, and, if we
call destroy before this happens, then waitFor appears to hang
indefinitely. Use the existing thread pool to guard against
an inf loop.
ACCUMULO-3297 allow metadata table reads even if all files have been allocated
Start stubbing out the necessary hooks to track active assignments
Use the timer thread to scan over the active assignments and report ones that are still running after 15s

Try to grab the thread the task is executing in so we can use that
to grab a stacktrace when things get stuck.
Make a property to control how long an assignment takes before a warning is printed.
Introduce a property for controlling the warning threshold.
Whitespace
Incorporate feedback from review

* Make sure LoggingRunnable gets invoked.
* Make timer delay a function of the warning time
* Replace stack trace printing with a custom exception