Slight thread.h tweaks
* Replace an asm barrier with a more portable gcc intrinsic.
  Timings appear not to suffer.
* Replace Windows _ReadWriteBarrier with MemoryBarrier; reading docs indicate
  that RWB only affects compiler semantics, not processor semantics.
New build flag OIIO_THREAD_ALLOW_DCLP, if set to 0, will modify spin_mutex
and spin_rw_mutex to avoid the double checked locking pattern, which we
think is correct, but throws off Thread Sanitizer and possibly could be
a problem for other tools in the future.
Speed up timer on OSX and Windows by precomputing seconds_per_tick.

Testing on my OSX laptop, this sped up timer begin/end from 5.2 M/sec
to 28 M/s, i.e. reduces the overhead of using timers by 80%.
Simplify timer.h to have fewer platform-dependent if's.
Strutil::safe_strcpy -- like strncpy, but copies terminating 0 char.
And fix several places where strcpy might be unsafe or have buffer overrun.