Add more robust test cases for property-change

This test more edge cases like removing all listeners and also removing
multiple at once.
It also adds a test to cover the behavior when one is added during
dispatch.

This motivated by covering proposed changes in #84.