Several fixes to syncing in the wireless device driver.

1) Handle case where metadata comes from scanning books instead of from calibre.
2) Don't attempt to update a field when its sync col is None but the other sync col is not.
3) Refactor code to eliminate interactions between sync types.