Clean up device initialization and release
The task-assignment object should not have responsibility for actually activating a GPU device, if applicable.
As the DeviceStreamManager already takes responsibility for lifetimes of context streams the DeviceContext constructor may as well also activate the device.
Simplified releaseDevice()
Eliminated TestDevice::activate() which merely duplicated DeviceContext::activate().
Edited by Mark Abraham