[Mono/Linux] Prepend names of IPC objects with "hfm-<user>"

In Mono, creation of (one of) IPC-related objects results in socket
in /tmp/. This causes issues with multiple (not necessarily simultaneous)
users of HFM (can't use a socket created by another user).

This is especially pronounced when a user initially runs HFM as root
(w/sudo or otherwise) but then switches to non-root ("regular") user
-- HFM refuses to run.

To accommodate multiple HFM users on Linux, universally prepend names
of IPC-related objects with "hfm-<user>".
Allow settings file to be stored in Environment.SpecialFolder.ApplicationData.

If 'settings file name' preference has no path components, assume it's
located in Constants.ExeName sub-directory of
Environment.SpecialFolder.ApplicationData.
[Mono] Add a patch that changes target framework of HFM.sln et al. to Mono / .NET 4.0.