Pass type information in DuplicatKeyError

Instead of assuming any DuplicateKeyError is for an address, make things
more generic.
Limit payout by IP

Check for duplicate IP addresses before scheduling payouts.