Re-write additional property code; code cleanup

Please note, this code will break any additional properties (including
backgrounds, widgets and custom properties) on all menu items.