Fix null sessions in HttpContextWrapper.Session
Fixed xamarin-bug #8565: System.Runtime.Serialization assembly remapping bug when targeting 2/3/3.5 profile.

The problem is related to a fix for issues #8037 & #6528
(e3b9881) which seems to be breaking shadow copy
with programs targeting .net35 and referencing System.Runtime.Serialization.dll

The fix consists on adding a new version_set entry to each supported_runtime
at mono/metadata/domain.c so I we cope with the case of assemblies which must
be remapped to v4.0 on net4/net45, but which should be remapped to v3.0 (instead
of v3.5) when targeting net2 or net3x.

See: https://bugzilla.xamarin.com/show_bug.cgi?id=8565

License: This patch is under the MIT/X11 license.
[WCF]: Add and improve MetadataImport tests.

We now run the same tests from ImportTests.cs three times
using the following profiles:

* We load the metadata from an XML file.

* We create the metadata programmatically.

* We create the metadata programmatically, export it into
  XML, then import it back (round-trip).
Remove the setup_jit_tls_data () call from mini_init (), it is done later by mono_thread_attach ().
Add some debug logging to lookup_data_table () to help track down why it asserts sometimes.
[WCF]: Metadata test improvements.

Only check whether 'System.Web.Services.Binding.Extensions' contains
the policy XmlElement when importing metadata, not when creating it
programmatically.
Make sure we don't corrupt the heap when serializing a unix domain socketaddr.

	* socket-io.c (create_object_from_sockaddr): The resulting array size must
	be two bytes larger than the sockaddr one since we always serialize the family
	kind at the beginning.

	This fixes a crash on MD-linux-amd64-mono-sgen-3.0 running unit tests.
Lazy sweep blocks when walking the heap.

	* sgen-marksweep.c (major_iterate_objects): We must lazy sweep blocks
	before we enumerate them to correctly account liveness.
Fix GC logging and make output neater.
Add a domain unloading test to the sgen test suite.
Make each test output to a different file to make it easy to figure out which configuration crashed.
Fixes xamarin-bug #8646: Inconsistencies with MS.NET on Sys.Web.Routing logic.

This patch fixes some inconsistencies on Sys.Web.Routing between our implementation
and the one found on MS.NET.. Both relating to URL Generation code inside of
Route.GetVirtualPath().

1) When defining a route with a parameter with both a default value and some
constraint, Route.GetVirtualPath() fails to match if no parameter values is specified.

2) HttpMethodConstraint, does not take into account RouteDirection.UrlGeneration.

See: https://bugzilla.xamarin.com/show_bug.cgi?id=8646
License: This patch is under MIT/X11 license.
One line typo bug which passed unoticed on previous commit.
Fixed routes with CatchAll argument, in order to make them succesfully
match requests with empty (or null) catch-all portion.

Included a couple of unit-tests which pass both here, and on ms.net land.

License: This patch is under MIT/X11 license.
[monkeydoc] Remove debug spew
[monkeydoc] Remove hard-copy of Lucene.net
[monkeydoc] Implement GetHashCode for EcmaDesc
[monkeydoc] Use Lucene.Net via a submodule set on their 3.0.3 release
[Microsoft.Build.Tasks] Put failing test into NotWorking category as they are dependent on environment.
[monkeydoc] Fix generated ecma: url format