Cinnamon keybinding manager (using muffin)

Note: depends on https://github.com/linuxmint/muffin/pull/74

This will add the functionality necessary to allow applets, desklets and extensions to capture their own custom hotkeys, as well as add the necessary support to the settings API for enabling users to customize those hotkeys.

Bind a hotkey via the following in your applet/desklet/extension:

    Main.keybindingManager.addHotKey("unique-id-string", "<Control>F1", Lang.bind(this, this.on_hotkey_triggered));

A hotkey can be disabled by:

    Main.keybindingManager.removeHotKey("unique-id-string");

unique-id-string can be any unique string - if this is for some multi-instance applet, it is recommended to attach the instance ID to this string.

Second argument is any parseable accelerator string (see gtk_accelerator_parse).

this.on_hotkey_triggered is the callback method from your applet/desklet/whatever that you want called when the hotkey is triggered.

*NOTE*: This will NOT override Muffin/Cinnamon hotkey combinations (like Super for menu) - use the keyboard panel in Cinnamon-settings to reassign those.  Any dual assignment over those will be ignored.

I've added a corresponding setting type and widget to the applet settings API (I will update the wiki once/if this is merged) and updated the settings example applet to utilize a hotkey.