Realtime index task

Indexing service realtime:
- Add SegmentAnnouncer, ServerView, QueryRunnerFactoryConglomerate to TaskToolbox
- Tasks can advertise ability to answer queries (through returning non-null from
  getQueryRunner)
- WorkerTaskMonitor (the thing on a worker that tracks running tasks) is now a
  QuerySegmentWalker
- LockAcquireAction is now blocking

Standalone realtime:
- MetadataUpdater now built from SegmentAnnouncer, SegmentPublisher instances.
- Sinks can take a version instead of always using interval.start. The realtime
  plumber selects a version using a VersioningPolicy.
- Plumbers gained a startJob method.
- Realtime plumbers gained an implementation for finishJob.

Assorted other changes:
- TaskAction.perform throws IOException
- TaskActions generally have better stringification
- Renamed TaskMonitor -> WorkerTaskMonitor
- Retry failed RemoteTaskActionClient submissions using a RetryPolicy