Various improvements

* Use a set to avoid duplicate menu items appearing (rare)
* Add a label if a menu item has a parent (makes distinguishing items easier)
* Give menu QSObjects an identifier (means abbreviations can be saved)
* Not the failure of the plugin for non-English systems
Remove the limitation on child count. Fixes quicksilver/quicksilver#667

Speed tests seem to indicate it's not a problem anymore (after my recent optimisations & machine speed increases)
Allow the label to be used for searching.

Makes ambiguous menu items easier to find.
e.g. in Mail.app 'Move To → Gmail' is easier to find (Gmail appears in many different places: Copy To, Get New Mail, Move To... etc.)
Improve details of menu items. (Take on board stuff whilst fixing quicksilver/quicksilver#612)
USe a smaller arrow for showing menu item children
fix a crash if app/menuBar is nil (trying to release a nil object)
New actions and functionality for windows. Fixes quicksilver/quicksilver#1078

* Add a 'Show Application' for window objects
* Allow you to get menu items of windows and not just the app. This makes perfect sense, since in reality each window may have different menu items (enabled/disabled), depending on its state
* DRY
Make window actions work with the comma trick. Fixes quicksilver/quicksilver#832

DRY
Create a documenation file
Update documentation with new actions/info
Add info about menu items' details
Don't show empty windows for the 'show windows' action
Memory leak fixes/crash fixes, and display notifs on action failure
Remove confusing internal commands, the proxy objects do the same thing and are move obvious

(I never like having actions in pane 1, it goes against the QS ethics)
Rename 'show application' to 'select application'
Documentation clarification/tidyup
Don't be too DRY. Fixes a bug I introduced that stopped the 'activate windows' action from working
Validate project with XCode 5
Add a type definition for Windows, add some alternate actions
Use loadIconForObject for windows objects

* Means that the icon is loaded in a background thread (it's expensive)
* Means the icon can be reloaded whenever
\nAlso add a reliable way of tracking the window (with window ID and not name)

* Means that if a window name is changed (e.g. changed a tab in Chrome) it's image can still be found