Indexing service: workers run tasks in their own JVMs and graceful shutdown of tasks

This pull request introduces the ForkingTaskRunner, which can run tasks in their own JVMs and output individual task logs. This pull request also introduces the ability to hard and soft shutdown tasks. For realtime tasks, soft shutdown will stop the task after a realtime segment has been published.