Use thread priorities. (aka set `nice` values for background-like tasks)

There are some items which seem to cause resource contesting when they are running. This is an attempt to allow the OS / JVM to help figure out which tasks should be run realtime, and which can be interrupted.

 * Defaults the thread priority to java.util.Thread.NORM_PRIORITY in io.druid.indexing.common.task.AbstractTask
 * Each exec service has its own Task Factory which is assigned a priority for spawned task. Therefore each priority class has a unique exec service
 * Added Task.Priority enum
   * Can be either NORMAL or LOW
 * Add options to ForkingTaskRunner
    * Add "-XX:+UseThreadPriorities" default option
    * Add "-XX:ThreadPriorityPolicy=42" default option
 * AbstractTask - Removed unneded @JsonIgnore on priority
 * Added priority to RealtimePlumber executors. All sub-executors (non query runners) get Thread.MIN_PRIORITY
The enum itself does not go above NORMAL. I can check in the other methods that create executors to make sure the priority is less than or equal to normal. In other words, using the enum (NORMAL / LOW) guarantees that the user does not have to be root to set priorities. That is a note to developers to make sure no one adds a HIGH without fully understanding what that would mean.