Synced with main branch + various fixes:
Fixed the hash.parentId assignment in the addBookmark function and the $("folder_list").value which wasn't actually setting the selected folder.  In-lined removeSpeedDialEntry() and clearSpeedDial() 1-liner functions in the only places they were only 1-liners with no other re-usability.
Using the chrome.sync API so we have an event handler page after dial navigation so the sync support is step 1 in thumbnail generation :)
Also tried to make the drag-swap look a little more obvious, I had to remove it's "handleDragEnter" function from the drag-swap Zepto plug-in since the events were firing prematurely and messing up the CSS key-frame drag animation.
Removed my extra fluff-tests for the drag-swap
Added a "Cancel" button in the options page, feels a little odd we never had a "Cancel" button on the setting page :P
Changed the .bind() -> .on() and .unbind() -> .off() event handler calls to keep up with the times.
Changed some px values to equivalent em values.
Made sure #folder_list isn't too wide from a long folder path, and removed the future prefixless -webkit- css properties to be specific instead of too much future-proofing.
Fixed the input color values to read their localStorage value, had to set the colors of default colors to their full 6 length hex character value(#cccccc) for setting the input DOM element to color to reflect the correct value, it doesn't work with the shortened value (#ccc).
Also added a reset button in the advanced options.
Simplified stuff which used the loadSetting function and used more specific logic for what was using it.  Like if there's no + button or top folder selector don't even add/keep them in the DOM vs just hiding them before.
Added hover text(titles) to the Options gear and + button.
Changed all $.on("click" instances to direct .click calls and simplified options page logic.
Put jQuery+jQuery-UI back in place of Zepto to get the old sortable(drag&drop) functionality back.
Changed how the default folder selection element is created.
Added the + button and folder selection list in a way that adds them to the DOM only when their option is checked and enabled.
Put JavaScript script tags at the bottom of body instead of up top with the CSS rel links.
The dial now vertically centers itself based on the size of dials, entries & the space above/below the present entries with or without top folder selection drop-down in the DOM.
Additional random CSS simplification of overqualified/unneeded selectors.
Removed all the extra value="true" labels from the options.html page.
Some CSS fixes, cleanup and simplification
#bbb was too light a hover color for a light background, so reverted it back to #888
Added an indexed ID to the anchor tags which have the specific href attributes so we can navigate to them directly pressing a number from 1-9.
Removed extra calls inside the create bookmark callback.
Removed 2 TODO's: the Ctrl + # isn't possible since its hard-coded into Chrome that Ctrl + # switches tabs, also Chrome's security policy makes it impossible(hard-coded into Chrome) that no new tab page is able to replace the incognito new tab page for safety and security reasons.
The web page http://developer.chrome.com/extensions/override.html specifically mentions the inability to replace the NTP in an incognito window, also the tip #3 mentions that ultimately when a new tab page is opened, the URL entry Omnibox will ALWAYS steal focus which prevents the crt/alt/# keys to be pressed without giving the Speed dial focus with the tab key or clicking in the Speed dial page for the # shortcut on keydown event to work.
Changed how & where index tags are put on dials, bug-fix of dial navigation in a dial if typing in bookmark add/edit form, also trimmed reveal plug-in down to take out unneeded animation styles.
Put a few |0 around so that our CSS values get set as whole number ints instead of long tiny decimal floats, same functionality as the parseInt function but ~30 times faster.
Removed the 2 hidden entry_height and entry_width elements and just made one property on the dial which things can use to calculate grabbing the attribute from the dial.
Random fixes & tweaks, added option to not add options gear to DOM and added 2 shortcut keys "s" & "o" that navigate to the options page regardless if it's present or not.
Rearranged some options and kept folder icons be shown by default instead of hidden by default, should be better and more intuitive for new users of the extension.
Set folder id and target dial to be HTML attributes on the #dial and #bookmark_form, they don't need their own hidden input elements lol.
Capitalized what the options were called in the options.html page.
Cleaned up the sync implementation to give better control of how sync works so it works in ALL cases with user defined control on how data is handles + simplified eventPage.js.
Validate settings on save in options.
Unified all event handlers to .on() callbacks.
Let user clear local and sync data from advanced options section.
Normalized all CSS values to lowercase hex letters.
Save ~700k of RAM by initializing default values with a local JSON object vs repeated function calls, while creating defaults only need to check for null, .getItem never returns undefined, using bracket notation to get localStorage variables like ["value"] can return undefined though.
Instead of setting the background image inline while appending html, call it after to prepare for setting the "background-image" with a thumbnail I generate.
Also removed the extra <div> that was named imgwrapper, it isn't needed anymore since only one div is needed to encapsulate the image/folder icon.
Simplified the getStartingFolder function, put functionality of setCurrentFolder function into the only place it was called on "hashchange" event handler.
Fixed setting background-color CSS setting in initialize function & misc other fixes and cleanups.
Misc bug-fixes and cleanups all over.
$.ajax() call to load the icon-fonts, it's the best way to load such fonts and it halves render speed for me, jQuery render time used to be ~100-110ms, now with the AJAX call to adaptively append the CSS rel link makes my page render time go to ~40ms, as fast as Zepto renders since other libraries try to be asynchronous loading resources by default but I'm just doing in manually now. This AJAX call causes a massive leap in render performance vs most other optimizations.
Options page background adaptively scales width.
generateFolderList() function put into the common initialize function.
Fixed bug of inaccurate entry index values when folders were in the list but option was set to not show folders

When folders were in the list but option was set to not show folders the index values would be wrong. Messed up #-19 shortcuts.
Used a stateless way to detect and set the index value of an entry that isn't limited by variable scoping and without using a global variable to persist through function calls to addSpeedDialEntry().
Call createDefaults() before setting backgroundColor