Added generic api support for dns proxies

Most dns proxies  provide a single url that will update your ip address
with them.
In most cases the complete url is given in the account details.
Two challenges here:
- Not spamming the dns proxy by refreshing the ip address on every url
call.
- Not spamming the ip address api service.

Logic is roughly:
If url is set then store the external ip in a txt file.
On each url call check the timestamp of the file.
If it's been more than 10 seconds since the last url call, get the
external ip again and compare to what's in the file.
If the ip is different call the update api.
IP cache is update on each call with either the new or current value.