Timer class changes -- more cleanly separate ticks versus seconds.

Many methods that returned seconds now have a second variety that
returns raw ticks. This is helpful because ticks are an integral type
that can be atomically added to a statistic, whereas double (seconds)
values are more of a pain.
fmath: Make ispow2 and round_to_multiple_of_2 info templates
so they work for size_t also.
Also add some unit tests to fmath_test.cpp, including making sure that
these templates works as expected.
Minor timer tweaks - add ticking() method, make unit test check "skips"
Fix compile error due to using SSE 3 _mm_abs_epi32 when compiling for SSE 2.
make_texture buglet: when doing check_nan, didn't wrap ImageBuf reference properly.
Make a TypeDesc::TypeFloat4
simd.h: unary - operator should be const.
Address SSE3 vs SSSE3.

Brecht points out that we set OIIO_SIMD_SSE to 3 when detecting __SSE3__,
but actually, some instructions may require SSSE3. Oy.

My theory is that there are only a few old (only 32 bit?) architectures
that are SSE3 but *not* SSSE3, and that it's no big deal for those oddballs
to get SSE2. So my proposed solution is to set OIIO_SIMD_SSE to 3 when
we see __SSSE3__.
simd.h fix a couple spots that needed casting.
Fixes #952
Fix compiler warning about uninitialized variable
Fix compiler warnings about set but unused locals
Merge branch 'master' of https://github.com/OpenImageIO/oiio into metadata