Menu Customizer: first pass at saving menu item data in a granular, previewble way.

Menu items are cloned the first time changes are made to its fields. The cloned items act as added items, then the original items act as deleted items when saving the menu control. Subsequent updates to cloned items are immediately published to the server, as those items are not yet published (they're orphaned drafts). This cleans up a lot of code that was left over from customize-widgets.js, which menu-customizer.js is based on.

Additional work will make everything previewable by filtering front-end menu display to replace the items in a given menu with those specified by id in the menu control, like the publish process works. 

This needs a lot of testing, but should theoretically work.

Significantly, this granular approach to updating item data should enable virtually eliminating the existing scaling problems with menus. Menu order is not saved with individual item updates (although parent item ids are for submenus), so individual items only need to be cloned and updated when their properties (label, url, advanced properties) change and/or when they're moved into/out of submenus in certain cases. The menu control handles ordering, and adding/deleting items, but only passes their ids back to the server, potentially enabling huge menus.

Many of the miscellaneous hidden menu item data fields are no longer necessary thanks to this approach.

git-svn-id: https://plugins.svn.wordpress.org/menu-customizer/trunk@946618 b8457f37-d9ea-0310-8a92-e5e31aec5664