Use test_equal instead of operator== for testing floating point values.

The test_equal function has some tolerance for floating point error, which
can creep into the test.
Merge branch 'icc-fixes'
Add timer class.

This can help remove reliance on some boost libraries (which can be hard
to compile on, for example, an Intel Phi.  It also allows us to
eventually adjust the timer depending on the device adapter being used.
Add a synchronization primitive to device adapter algorithms.

Used in the timer to make sure measurements capture all asynchronous
execution.

Not implemented in all device adapters yet.
Add synchronize function and specialized timer for TBB.
Be a bit more lenient on timer test.

I saw a test fail because the timer was a few ticks short of a full
second of wait time.  I don't think this matters for any practical
purpose.
Add synchronization and custom timer for OpenMP device.
Add synchronization and custom timer for CUDA device.
Fix dependence issue of Timer.

Instead of having each device adapter try to override the template
dax::cont::Timer (which itself depends on the device adapter algorithm),
create a different implementation class
dax::cont::internal::DeviceAdapterTimerImplementation and have
dax::cont::Timer delegate all of its calls there.
Remove dependence on Boost timer.

We now have our own internal timer.
Merge branch 'BuiltInTimer'
Add in a BlackScholes Benchmark.

After looking at hemi and seeing it use black scholes as a
both a benchmark and a 'complex' worklet I was inspired to see
if we can do the same in DAX.

So now we have a basic BlackScholes implementation in DAX!
CUDA timer was reporting in milliseconds instead of seconds.
Merge branch 'BuiltInTimer'
Remove traces of the old timing code from the benchmarks
Merge branch 'remove_timing_traces'
Merge branch 'black_scholes'