[B+C] Add WolfDyeCollarEvent. Adds BUKKIT-3900

### The Issue:
Currently, no event exists for when wolves have their collars dyed.

### Justification for this PR:
Having an event called for this seems to make sense and fits with the existing SheepDyeWoolEvent.

### PR Breakdown:
This PR adds a new event, WolfDyeCollarEvent, to be called when a wolf's collar is dyed. Additionally, it creates a new abstract EntityDyeEvent to serve as a basis for both this event, the existing SheepDyeWoolEvent, and any future events that may involve dyeing entities.

### Relevant PRs:

### JIRA Ticket:
https://bukkit.atlassian.net/browse/BUKKIT-3900