Duplicate name fix [MJ-391]

Remade how the save function works for Name object. Lots of edge cases, which I think I found most of them (I could see myself missing one). Created tests to test specific edge cases that I thought of and they pass. Works well with both save forms.

Features:
No error messages
No deleting, just updating if needed

All Tests Pass