add task ID to LogEvent and set up infrastructure to provide it

This always sets taskId of 0 right now, but it creates a shared
object to be used between EventLogger and ServerExecuteProgress
to communicate task IDs.
Use a ThreadLocal to (usually) know our task ID in log events
If only one task is live, we can guess its ID even from a weird thread

This would arise if the task spawns its own threads.
But if running two tasks in parallel and a task spawns its own thread,
we are still hosed - we'll have to fix things properly to address
that case.
Merge pull request #89 from sbt/wip/havocp-task-ids-in-events

Put task IDs in log events