Allows objects returned as ResultValue (instead of ResultValueType::type) to be moved without requiring additional casting or explicit use of ResultValue::value. Resolves #589