Refactor runtime device tracker
Made several changes (improvements) to the runtime
device tracker. One important change is that the Reset
method is compiled into the vtkm_cont library. This way
you can use RuntimeDeviceTracker
with other functions
compiled in the library without having to compile for
devices (such as CUDA) yourself.
Another important change is the addition of a global runtime device tracker. Now we can generally make functions that try several devices and sync up the monitoring of which devices are working on the system.