watch module: Don't handle multiple matching patterns for each target
watch module: Don't handle multiple matching patterns for each target

Keep track of the targets which have already been notified of a matching
message, and do not notify them again if other patterns in the same
message match also. For example, consider the following match patterns:

  1) <*watch> /msg *watch ADD *!*@* *highlight *%nick%*
  2) <*watch> /msg *watch ADD *!*@* *highlight *testuser*
  3) <*watch> /msg *watch ADD *!*@* *testhilights *test*

If %nick% ist something like "testuser123", all of the these patterns
match the following message:

  <otheruser> hey testuser123, look at this: ...

Without this patch, the watch module would generate two notify messages
for target *highlight, and one notify message for target *testhilights.
This is unneccessary because patterns 1 and 2 will result in
generating the same notify message twice for target *highlight.

By using a std::set, the implementation in this patch keeps track of
which targets have already been notified and does not notify them more
than once.

jpnurmi/znc,TingPing/znc,trisk/znc,anthonyryan1/znc,TuffLuck/znc,psychon/znc,aarondunlap/znc,KielBNC/znc,jreese/znc,jantman/znc,psychon/znc,KielBNC/znc,aarondunlap/znc,Adam-/znc,TingPing/znc,ollie27/znc,Adam-/znc,Mkaysi/znc,GLolol/znc,badloop/znc,TingPing/znc,anthonyryan1/znc,Zarthus/znc,jpnurmi/znc,Phansa/znc,Mkaysi/znc,ollie27/znc,psychon/znc,dgw/znc,KiNgMaR/znc,Mkaysi/znc,evilnet/znc,withinsoft/znc,Hasimir/znc,jantman/znc,Zarthus/znc,evilnet/znc,ollie27/znc,Hasimir/znc,Hasimir/znc,jreese/znc,aarondunlap/znc,jantman/znc,jantman/znc,KiNgMaR/znc,YourBNC/znc,anthonyryan1/znc,jantman/znc,dgw/znc,Mikaela/znc,withinsoft/znc,Phansa/znc,aarondunlap/znc,reedloden/znc,KiNgMaR/znc,dgw/znc,dgw/znc,kashike/znc,KielBNC/znc,KielBNC/znc,jantman/znc,KielBNC/znc,badloop/znc,Mikaela/znc,TingPing/znc,markusj/znc,TingPing/znc,Adam-/znc,Hasimir/znc,Kriechi/znc,DarthGandalf/znc,GLolol/znc,badloop/znc,znc/znc,Phansa/znc,Mkaysi/znc,Mkaysi/znc,Mikaela/znc,Mkaysi/znc,znc/znc,jpnurmi/znc,markusj/znc,TuffLuck/znc,DarthGandalf/znc,Kriechi/nobnc,psychon/znc,znc/znc,aarondunlap/znc,GLolol/znc,kashike/znc,wolfy1339/znc,Adam-/znc,ollie27/znc,reedloden/znc,kashike/znc,TuffLuck/znc,DarthGandalf/znc,Mkaysi/znc,TuffLuck/znc,YourBNC/znc,elyscape/znc,Adam-/znc,kashike/znc,elyscape/znc,BtbN/znc,trisk/znc,KiNgMaR/znc,aarondunlap/znc,jreese/znc,Kriechi/znc,reedloden/znc,jpnurmi/znc,Phansa/znc,aarondunlap/znc,anthonyryan1/znc,Zarthus/znc,Mikaela/znc,badloop/znc,wolfy1339/znc,ollie27/znc,markusj/znc,dgw/znc,Kriechi/znc,elyscape/znc,DarthGandalf/znc,evilnet/znc,psychon/znc,trisk/znc,evilnet/znc,elyscape/znc,Kriechi/nobnc,markusj/znc,BtbN/znc,withinsoft/znc,znc/znc,badloop/znc,YourBNC/znc,KielBNC/znc,Adam-/znc,Hasimir/znc,Adam-/znc,Zarthus/znc,trisk/znc,wolfy1339/znc,GLolol/znc,Kriechi/znc,trisk/znc,evilnet/znc,TuffLuck/znc,BtbN/znc,badloop/znc,Hasimir/znc,kashike/znc,anthonyryan1/znc,trisk/znc,reedloden/znc,wolfy1339/znc,jpnurmi/znc,reedloden/znc,elyscape/znc,markusj/znc,jreese/znc,BtbN/znc,dgw/znc,wolfy1339/znc,elyscape/znc,evilnet/znc,KiNgMaR/znc,DarthGandalf/znc,YourBNC/znc,jpnurmi/znc,Kriechi/znc,Mikaela/znc,ollie27/znc,YourBNC/znc,GLolol/znc,BtbN/znc,Hasimir/znc,Kriechi/nobnc,jreese/znc,KiNgMaR/znc,BtbN/znc,psychon/znc,Zarthus/znc,Phansa/znc,badloop/znc,Kriechi/znc,withinsoft/znc,YourBNC/znc,DarthGandalf/znc,withinsoft/znc,Phansa/znc,TingPing/znc,jpnurmi/znc,Zarthus/znc,TuffLuck/znc,reedloden/znc,wolfy1339/znc,jreese/znc,withinsoft/znc,kashike/znc,anthonyryan1/znc,GLolol/znc,Mikaela/znc,znc/znc,markusj/znc,Mikaela/znc,TuffLuck/znc,anthonyryan1/znc,znc/znc