Fix threaded device allocation

We are starting to introduce threads in the VTK-m control environment so
that we can schedule multiple things at once. Once issue we ran into is
that some methods to allocate data on devices are not thread safe. To
fix this, we make allocating memory for a `Buffer` thread safe. This
could potentially slow things down waiting for mutexes, but you are
hopefully not spending a lot of time allocating/deallocating memory
anyway.
5 jobs for threaded-allocation
latest
Status Name Job ID Coverage
  External
passed cdash-buildbot

passed vtk-m-dragnipur-osx-shared-debug+32bit_ids+64bit_coords+clang+tbb

00:12:36

passed vtk-m-dragnipur-osx-static-release+64bit_coords+clang+tbb

00:17:50

failed vtk-m-osheim-windows-shared-debug+ninja-vs-2017+tbb

00:30:31

passed vtk-m-osheim-windows-static-release+ninja-vs-2017+tbb

00:33:17