[Printing] Add unit test for Novell bug #602934

This unit test demonstrates the problem reported as #602934
(https://bugzilla.novell.com/show_bug.cgi?id=602934).
[Printing] Improve reported printer settings (Fixes #602934)

Report the actual values of the printer driver in printer settings
instead of using hard coded default values. This fixes Novell bug
#602934 (https://bugzilla.novell.com/show_bug.cgi?id=602934).
[MWF] Fix hang if clipboard source application closes down (fixes #674098)

This change adds a timeout to the Clipboard.Enumerating loop, making a
hang less likely. This fixes Novell bug #674098
(https://bugzilla.novell.com/show_bug.cgi?id=674098).
[MWF] Fix size of text area on message box (Fixes #2090)

Previously some characters might have been concatenated on a message
box that displayed an icon because the size of the text area was
calculated wrong. This fixes bug #2090
(https://bugzilla.xamarin.com/show_bug.cgi?id=2090).
[MWF] Fix MessageBox to wrap texts reasonably

Wrap text in MessageBox window so that the message box has a reasonable
width.  This fixes Xamarin bug #15504.
[MWF] Better account for icon width in MessageBox

This fixes Xamarin bug #16374.
[MWF] Refactor DataGridViewRow.MinimumHeight tests

- fix the tests (tests made partially wrong assumptions which didn't
  match the behavior of .NET).
- split MinimumHeight test in multiple smaller tests that test only
  one thing.
- add a few more tests for MinimumHeight and Row.
[MWF] Adjust DataGridViewRow.Height according to MinimumHeight

When the MinimumHeight gets changed to a value less than Height
we set height to the new minimum height (and fire the
DataGridView.RowMinimumHeightChanged event). This matches the
behavior on .NET.

When the user tries to set Height to a value less than MinimumHeight
we silently set the height to the minimum height (instead of
throwing an exception). This matches also the behavior on .NET.
[MWF] Unit test for Row.Height/MinimumHeight bug (#2394)

This change adds unit tests that demonstrate the bug #2394
where setting Row.Height below MinumumHeight in a DataGridView
doesn't work as expected. The unit tests also document the
behavior of .NET which isn't documented in MSDN.
[MWF] Fix crash when setting Row.Height (Fixes #2394)

When setting both Row.Height and MinimumHeight we need to set the
MinimumHeight first otherwise we will get a crash if the new Height
value is less than the old MinimumHeight value.
[MWF] Add unit tests for DataGridViewRowHeightInfoNeededEventArgs
[MWF] Don't allow Height become less than MinimumHeight

In RowHeightInfoNeededEventArgs we need to check that the new
Height value isn't larger than the current MinimumHeight.
[MWF] Fix text position on buttons (#463149)

Vertically centered text on buttons didn't show up centered. The
referenced bug reports it on Windows. Matters were worse on Linux.
This patch tries to fix the problem on both Windows and Linux. On Linux
the positioning is improved although probably still not perfect.

This fixes Novell bug #463149
(https://bugzilla.novell.com/show_bug.cgi?id=463149).
[MWF] Release capture when clicking LinkLabel (Fixes #2787)

When clicking on a LinkLabel we need to release the mouse capture
otherwise the UI might lock up.

This fixes Xamarin bug #2787.
[MWF] Fix clipping of last line of dropdown (#2462)

The height we calculate is the inner height, so we need to add the top
and bottom borders when setting the height of the listbox. The width
however is the outer width so we need to subtract the left and right
borders when setting the client width.
[MWF] Fix TableLayoutPanel layout bug (#8907)

This fixes the TableLayoutPanel implementation to check for control names
as well as the the controls themselves in looking up the row and column
values.
[Fix] DataContractJsonSerializer fails serializing/deserializing collections
[MWF] Add unit tests for AutoSize behavior of FlowLayoutPanel
[MWF] Fix AutoSize behavior of FlowLayoutPanel (#2912)

A FlowLayoutPanel that has AutoSize set needs to resize if the
contained controls wrap.
[counters] Add system counters

After discussion with Kumpera, it was decided to load them lazily when calling mono_counters_foreach for the first time. It has to be inside the mono runtime, and not in a profiler because it accesses proclib API which is all MONO_INTERNAL functions.