use thread local storage for oid increment generation.

Linux only currently.

This allows us to avoid using mutexes between threads to negotiate
because we used the task id instead of the process id for our 2 byte
pid. TLS stores the last time generated as well as our thread local
increment. If we need to roll over and the time period has passed,
we reset to zero. If you make a sufficiently fast OID generation tool
it is possible to rollover forcefully and therefore we cannot guarantee
that a second OID generated will compare greater than the previously
generated OID. Most drivers don't handle this at all today, and I think
this is at least a better option.