Fix Duplicate Page Part Title Validation

The JavaScript that was checking for duplicate page part titles doesn't currently work. This fixes that.

This also adds validation to the model itself so it's impossible for page parts with the same title to be saved to the same page.