Sort out the identity/value problem

Implemented appropriate copy c'tor and assignment operator for Device so that they can be passed by value. Modified Handle to inherite from QObject because it needs to be used in pointers anyway.