Show the alternate action (if available) when ⌘ is pressed. Fixes #189

Adds a (horribly named) property used by the actionSelector to remember its original action and flip back/forward between it and the alternate as ⌘ is pressed and de-pressed.
Since the aSelector's objectValue is set to the alternate action immediately once ⌘ is pressed, this change also removes the need to do a further check down the line (in QSInterfaceController.m). Mmmmm tidiness :)
Better manage when alternate actions are selected.

Fix code where the resultArray is cast to a mutable array. Very dangerous!

Fix a typo and use a property for a resultController's resultTable iVar
Add an 'alternate actions' column to the Actions prefs

This gives an easy way of finding which actions have an alternate action
make the text at the top of the actions pref pane resizable
add more alternates to actions
Remove an accidentally copied/pasted line
Keep the iObject contents when an alternate action is added/removed

Also: Save the original action for the mnemonic, not the alternate action
Add the keyboard shortcuts for actions and their alternate actions to the headers in the Actions pref pane
remove a redundant(?) call to `display`

This was getting called immediately after `makeKeyAndOrderFront:`, causing a lot of code to be run twice. The documentation says it generally shouldn't be necessary and I don't see any difference without it.
remove a delay in processing keystrokes

The call to `nextEventMatchingMask:` seemed to be "replaying" the event, causing a lot of code to be run again.
show details for the currently selected item in the results gutter

The details were being appended to the `status` string *before* figuring out which result was currently selected.
return the computed details the first time

Previously, the `details` method would need to be invoked *twice* to yield the correct result. (The first invocation would cache the details, and the second would return it from the cache.)

close #1148
always show details if the current interface supports them

Whether or not the details can fit in the results list has nothing to do with whether or not they can fit in the main interface. In the context of the results list, the details string is already being handled appropriately by `QSResultController`.
rearrange things to avoid some unnecessary tests and assignments
Truncate details using NSLineBreakByTruncatingMiddle

reproduces work done by @pjroberston - fixes #525
Show the alternate action *iff* the ⌘ key is pressed

Also: only remove the `alternateActionCounterpart` if the aSelector `clearSearch` is called
only check primary type if no details were found

I think this was meant to be a fallback value, but since primaryType is *always* a string, it was returning the fallback the first time this method was run. After that, the cached value would be returned.
Merge remote-tracking branch 'origin/issue1148' into alternateActions
Post 'searchObjectChanged' notifs when alternate actions is changed

* Use the `updatesSilently` BOOL to only disable the certain areas that should not be updated when the action is changed (using ⌘)
don't cache details from the object handler

There's probably a good reason someone wrote code to generate them in real-time instead of storing them up-front when the object is created.