Prevent call to OwnerLostFocusHandler for disposed object

bugzilla.xamarin.com bug reference: Bug 19304
ComboBox reverts to original selection when it loses focus.
The LostFocus handler for the internal ComboTextBox class
was being called after it had been disposed.  The dispose
was correctly called when the ComboBoxStyle changed from
it's initial default value to DropDownList.  However, when
the ComboBox control lost focus later on, the LostFocus event handler
was called, which resulted in the Text value for the ComboBox
being overwritten by the value in the disposed object.

Could not see how to write a unit test within the ComboBoxTest.cs
that would simulate losing focus so only providing fix.

Change-Id: I9ca4cc75da5711a7d7c1dd166d5f52d580f44df1
[counters] Add sample and accessors functions
[counters] Sample should fail if buffer size is too small
[counters] Use macro to copy counter in sampling, and use sizeof directly instead of mono_counter_get_size

The use of sizeof will enable compilers optimization on memcpy.
[counters] Fix type issue on mini counters

Used MONO_COUNTER_WORD for gint32 variable, crashed on 64bits platform.
[counters] Disable register filter on valid_mask

This was previously used to not store counters that were not going to be dumped, but because we can now sample them, we have to make sure that they are stored, even if we do not plan to dump or sample them.
[mcs] Do type parameter conversion involving type parameters using dependency rules. Fixes #18473
[mcs] Report error for invalid unary nullable predefined operators
[mcs] Emit null constant value for default parameters of generic types to indicate not missing value. Fixes #19033
Merge pull request #992 from ludovic-henry/ludovic-counters-pr1

[counters] Add sample and accessors to mono counters API
[MWF] Unit test for DataGridView bug (#19567)
[MWF] Clear currentCell before disposing (fixes #19567)

If currentCell still has a value when we call Columns.Clear() we
might try to end the editing. Because the columns got disposed
before calling Columns.Clear() we get a crash. This patch fixes
the problem by setting currentCell to null.
[mcs] Include more unicode categories in parsing identifier part character. Fixes #18229
Merge pull request #1010 from davidmoore1/bug-19304

Prevent call to OwnerLostFocusHandler for disposed object
[sgen-bridge] Each bridge needs it own internal mem type as their sizes differ.
[bridge] change the log entry name to make it easier to read logs.
[sgen-bridge] Add the tarjan-coloring bridge.

The tarjan-coloring bridge is significant departure from the old bridge. It's design is based
on the Tarjan Strongly Connected Component algorithm.

SCC links are calculated as part of the Tarjan dfs on the second scan to calculate the low index and
form the components.

The algorithm does inspect all children after they have been processed, which enables us to do backward
propagation of the reachable SCCs.

In order to avoid the xref mess of the old algorithm, we color each component based on the sum of all
reachable components (colors). This means no matter how many non-bridge objects are in between two bridges,
they will all receive the same color and be represented in the final output as a single node in the SCC
graph.

This allows for a reasonably compact output graph as it will only include colors with no bridges when
a single object has multiple bridges reachable.

Said that, the basic algorithm received a series of optimizations:

1)Flag based merging, great idea from Mark, it bounds color and xref merging to be linear on the number of
colors found.

2)Objects and Colors bucket allocation. Instead of using expansible arrays we use fixed size buckets that
form a linked list. This allow us to use direct pointers instead of indexes. It avoid the expensive expansions.
Another benefit is that it reduces the work by sgen's malloc, which can be really slow.

3)Replace the object hash table with header patching. We tag objects with both pinning and forwarded bits and
store a pointer in the lock word. This eliminates the hashtable, a big source of perf issues. Patching objects
back at the end of bridge processing is much much cheaper than free'ing all the hashtable entries.

4)Color deduplication. It's possible to produce duplicated colors due to mutually unreachable paths that
both points to the same set of bridges. A cache is introduced to reduce it for colors points to 2 or 3 others.

The way we build colors allow us in the future to fix the hub object problem (SetupDoubleFan).

Experimental results with sgen-bridge-pathologies shows this implementation been 2-3x faster than the new one.
[sgen] Improve bridge comparison code a bit.
[sgen-bridge] Add color duplication  pathology.
Merge pull request #1018 from ermshiperete/xamarin-19567

[MWF] Clear currentCell before disposing (fixes #19567)