set share diff target based on address hash rate

Instead of small miners getting assigned share diff targets based on the node's local hash rate, it will use the payment addresses' hash rate. Thus a small miner on a big public node has the same diff target as if they ran their own node instead.

I did not do the same logic for the pseudo share rates, that still calculates based on local node hash rate. I was concerned a large public node would have an unexpected increase in traffic if every miner started sending in a lot more pseudo shares. Perhaps that should also be done? Pseudo share target speed shouldn't be a share per second on a public node, however.

I added pubkey_hash and speed to the work in the log since it won't be the same share_diff for every worker now. I wasn't sure how to easily log actual payment address instead of pubkey_hash.