Win95 interface code is being introduced.

Instead of compiling Wine for Win3.1 vs. Win95 using #define switches,
the code now looks in a special [Tweaks.Layout] section of wine.conf
for a "Win95Look=true" entry.

A few new sections and a number of entries have been added to the
wine.conf file -- these are for debugging the Win95 tweaks only and may
be removed in a future release!  These entries/sections are:

[Tweak.Fonts]
System.Height=<point size>    # Sets the height of the system typeface
System.Bold=[true|false]      # Whether the system font should be boldfaced
System.Italic=[true|false]    # Whether the system font should be italicized
System.Underline=[true|false] # Whether the system font should be underlined
System.StrikeOut=[true|false] # Whether the system font should be struck out
OEMFixed.xxx                  # Same parameters for the OEM fixed typeface
AnsiFixed.xxx                 # Same parameters for the Ansi fixed typeface
AnsiVar.xxx                   # Same parameters for the Ansi variable typeface
SystemFixed.xxx               # Same parameters for the System fixed typeface

[Tweak.Layout]
Win95Look=[true|false]        # Enables/disables the Win95 look and feel
MenuHeight=<pixels>           # Sets the height of the menu bar
MenuBarItemTopNudge=<pixels>  # Nudges the menu bar items down/up
MenuBarItemLeftNudge=<pixels> # Nudges the menu bar items left/right
MenuItemTopNudge=<pixels>     # Nudges the menu items down/up
MenuItemLeftNudge=<pixels>    # Nudges the menu items left/right
MenuHighlightTopNudge=<pixels> # Nudges the top of the highlight bar
MenuHighlightLeftNudge=<pixels> # Nudges the left side of the highlight bar
MenuHighlightRightNudge=<pixels> # Nudges the right side of the highlight bar
MenuHighlightBottomNudge=<pixels> # Nudges the bottom of the highlight bar
CaptionAlignment=[left|right|center] # Sets the alignment of caption text
SysControlNudge=<pixels>      # Nudges the system menu left/right
MaxControlNudge=<pixels>      # Nudges the maximize control left/right
MinControlNudge=<pixels>      # Nudges the minimize control left/right
ScrollBarWidth=<pixels>       # Sets scroll bar sizes
DialogFrameWidth=<pixels>     # Sets the frame width of dialog boxes

[Tweak.Colors]
PenFF95.Red=<0-255>           # Sets the red value of the Win95 white pen
PenFF95.Grn=<0-255>           # Sets the green value of the Win95 white pen
PenFF95.Blu=<0-255>           # Sets the blue value of the Win95 white pen
PenE095.xxx                   # Sets the RGB values of the Win95 grey-88 pen
PenC095.xxx                   # Sets the RGB values of the Win95 grey-75 pen
Pen8095.xxx                   # Sets the RGB values of the Win95 grey-50 pen
Pen0095.xxx                   # Sets the RGB values of the Win95 black pen
