Add OS X menu items for Preferences and About
OS X menus and menu items

Most of these already work in this commit, but not all.
Some need some more complicated handlers, for which I will make a separate commit for clarity.
Many of the simple ones use the existing handlers for the toolbar buttons, though I have also added several new simple handlers here.

I have extended the SetToolbarItemState function to also set the state of the corresponding menu item, and have used it extensively to replace existing places where the toolbar item state was previously set manually.
OS X menu handlers for mark, route, and measure items

These involved wrapping some of the existing code in chcanv.cpp in function wrappers so I could call it from chart1.cpp.
OS X menu handler for Help menu item

I moved the code to load the external help from about.cpp to chart1.cpp so it is globally available, and I call it from the chart1.cpp menus and also from the original location in about.cpp
Fix disappearing toolbar item bug

Introducing new constants amongst those which define the existing toolbar items triggered a bug in the way toolbar button visibility is calculated.
Fixed by defining new constants AFTER the old ones.
Explanatory comments added.
Add 'C', 'M', and 'Q' shortcuts (for all platforms) to parallel 'F5', 'F4', and 'F9'
Add OS X menu for AIS, with target visibility toggle and alarm options

Also abstracted the code which updates the menu item check values into a method so that ti can be called when updating options, as well as at load.
This is necessary in case the AIS options change, and potentially for future options too.
Update shortcuts in context menu, and add Shift-Cmd-Z for undo on OS X

- Changes the right-click menu items to use the new single-letter hotkeys instead of the old F-keys. (Both types of hotkey still work, this only changes the labels.)
- Removes some instances of ifndef __WXOSX___ which needlessly prevented some shortcuts showing on OS X
- Adds a new shortcut for undo, Shift-Cmd-Z, which is the standard on OS X. Both this and Ctrl-Y will now work on all platforms.
Add ability to enable menu bar on non-Mac platforms

- add option to UI settings, except on OS X
- encapsulate menu code in a function, which I should probably have done from the start, so as to be able to toggle the menu bar visibility
- add menu bar creation/destruction logic to ApplyGlobalSettings(), modelled on similar logic for status bar creation/destruction
- rename menu variable to not refer specifically to OS X
Unique IDs for menu items, separate from toolbar item IDs.

Fixes a bug with plugin toolbar items, but is also generally cleaner and more robust.
(The plugin bug itself could have been fixed by simply moving the ID_PLUGIN_BASE constant to the end of the enum block.)
Add helper function to create proper label + hotkey strings for menu items

I actually just moved the helper function from chcanv to chart1, and used it globally.
Correct capitalisation of "OpenCPN" in main app menu items
Correctly change AIS menu item state when toggling target visibility from toolbar
Right click on own vessel when a route is active and there is a cross track error to provide a 'Zero XTE' option.

This option will use the same logic as getting to the first waypoint of a route by creating a virtual waypoint to get a route from the current postion to the active waypoint.

This is for FS#1563

This change allows the autopilot to follow a direct route to the next waypoint without haveing to converge on the original route first. It is very useful when sailing or motor/sailing.
Improve UI responsiveness while GRIB particle display is active.
Check for and correct inappropriate projection longitude for Transverse Mercator charts (FS#1513)
Use system default font as OCPN default font on fresh install startup. (FS#1545)
Initialize ownship state to INVALID on startup (FS#1562)
wxWidgets 2.8 back-compat

Add _T() wrappers around char strings, and version check for SetAppDisplayName()
Merge branch 'master' into mac-menus to fix conflicts

Conflicts:
	src/chart1.cpp (lots of whitespace changes)