always use thread pool, default to jl_cpu_cores()

start duplicating allocation state per-thread

provide a thread-local 0..n-1 id, jl_thread_id

formatting fixes

this is a WIP commit
code for per-thread heaps now builds
fixes to get threading tests running again

now we use the main thread for execution, instead of using it only to fork and join