Function to return unique values from a list
Use one observer for all planning sprints

The class attribute for one sprint container can change more than once
between callbacks, causing it to appear in the list of mutations
multiple times. Filter the list of mutations by Sprint ID to visit each
sprint container only once.

Fixes GH-3