Fix issues found in device_coordinator.hpp. (#1086)
Fix issues found in device_coordinator.hpp. (#1086)

* Check for self-assignment in `device_reference::operator=(const device_reference&)`.
* Return reference to self in ` device_reference::operator=(const device_reference&)`.
* Prohibit default construction of `device_reference` and clarify copy semantics.
halfflat/nestmc-proto,eth-cscs/nestmc-proto,halfflat/arbor,eth-cscs/nestmc-proto,halfflat/nestmc-proto,halfflat/arbor,halfflat/arbor,halfflat/arbor,halfflat/arbor,halfflat/nestmc-proto,eth-cscs/nestmc-proto