addWatch: don't cancel other watches

Previously, addWatch would override any actions already registered with the
same watch descriptor (i.e. related to the same path). This commit changes the
behaviour so that the previously registered actions are kept.
Exception safety

Ensure that if one handler for an event is killed by an exception, others
still get a chance to run.
Merge pull request #7 from feuerbach/master

addWatch: don't cancel other watches