Alter Marionette.normalizeUIKeys to return a new/non-mutated hash

reopening since when this was merged it broke minor, so it was reverted