Partially updates the existing device definition. For the function array each element passed in will be cross-referenced against items in the existing function array using the id. If they match, the existing function will be updated. If there is no match the function will be added. For each function, only the attributes passed in will be updated in the existing function.