Pass Thread index as c'tor argument

Thread struct should be agnostic about the origin
of the index, that is Threads.size().

No functional change.
Prefer nullptr to NULL

No functional change.