prune watched_addresses to only active subscriptions

Reduce long-term CPU and memory usage by removing inactive entries from watched_addresses.

When a user connects and "subscribes" to receive data on a list of addresses, those addresses get added to the "watched_addresses" list. Each time there is new activity on a block, the watched_addresses list is checked to see if the activity is "of interest" to the users.

The problem was that there was no logic to ever remove an address from the watched_addresses list. If a user connected and requested many addresses, then disconnected, his requested addresses would stay in the list and would continue to generate some additional work for each and every block being processed. This list could grow forever or until the server was restarted.

My "fix" was to re-build the list of addresses that all active users are watching each time the list of active users is cleaned.