Distinct places returned by Person.constituencies

As a temporary measure to fix #1200 without solving the underlying problem (see #1214) this commit adds a .distinct() onto the query that returns the places, and some tests to make sure it's working as expected. Closes #1200