Fixed: AboutPanel is now constructed in code, rather than in a CIB

Previously the default About panel was constructed in a CIB. Additionally, an Xcode-based XIB/CIB file was constructed to replace it.

This commit creates the default About panel in code and removes the additional CIB/XIB files in the AppKit/Resources panel.
Merge pull request #1900 from ahankinson/fix-aboutpanel-cib

Fixed: AboutPanel is now constructed in code, rather than in a CIB
Fixed: Removing an item from a menu also removes its highlight state

Previously when a menu item was instantiated outside of the context of the menu itself, its highlight state was maintained even after it was removed from the menu. If the menu was dismissed with the item highlighted, and then the item was used in another menu (e.g., re-added to a context menu for a table row) it would appear highlighted, even though the menu highlight index was not set.

This commit ensures that when removing items from a menu that the highlight state of the underlying view is set to NO as well.

Tests for this behaviour are included as well.

Fixes #1899
New: Handles line continue token '\' on lines starting with '#'

We now support lines like this:
#define StopButtonTitle() \
        CPLocalizedString(@"Stop", @"Stop button title")
New: Now supports 'defined' operator, which lets you check whether macros are defined in the middle of an ‘#if’.

Also the evaluation of expressions are now lazy.
New: Added support for CPTimeZone and CPDateFormatter

- Added support for CPDateFormatter in Foundation
- Added support for CPTimeZone in Foundation
- Added support fo CPDateFormatter in nib2cib

Test app in Tests/Manual/CPDateFormatter
UnitTest in Tests/Foundation/CPTimeZoneTest.j
UnitTest in Tests/Foundation/CPDateFormatterTest.j
Change how menu items are highlighted

This replaces the previous solution with one proposed by @BlairDuncan. It uses the _highlightItemAtIndex: method to maintain the highlight state, rather than setting the _highlightIndex variable directly.
Docs: Fix small but potentially confusing typo in CPTableView

This commit fixes the delegate documentation for `- (void)tableViewSelectionIsChanging:(CPNotification)aNotification`, removing reference to "selection chaining." (should be "selection changing")
Fixed: Delegate method fires twice when using keyboard to select rows in table view

Previously, navigating through the rows of a tableview with the arrow keys would cause the delegate method `- (BOOL)tableView:(CPTableView)aTableView shouldSelectRow:(int)rowIndex` to fire twice. This was due to the delegate method being called twice in checking whether the row could be selected.

This commit changes it so that the delegate method is called just once and the result stored.
Merge pull request #1904 from ahankinson/docs-fix-tableview-typo

Docs: Fix small but potentially confusing typo in CPTableView
Fixed: Misspelled variable in CPTableView

This commit fixes a typo in CPTableView. `_contentBindingExpicitelySet` should be `_contentBindingExplicitlySet`. The misspelling was consistent, so this should have no functional change.
Fix delegate selection to check the index first

In the previous patch the shouldSelectRow delegate was being stored and only called once. This changes its behaviour again to first fire the delegate to see if the row in question can be selected. If not, it will look for the next row (up or down) that may be selected and choose that one.
Fixed bunch of bugs in CPDateFormatter with TimeZone
Fixed small bus about timeZone
Removed double action in CPDatePicker
Updated manual example
Corrected bad test
Added support for timeZone in CPDatePicker textual
Added support for timeZone in CPDatePicker calendar
Added CPTimeZone test