[WCF]: Implement missing WsdlImporter pieces.

The WsdlImporter can now import Bindings and Endpoints
from the WSDL, currently supporting BasicHttpBinding,
BasicHttpsBinding and NetTcpBinding.

There is also - limited and still experimental - support
for WS-Policy 1.5.  I only did the very basic pieces so
far, for instance things like TransportWithMessageCredentials
are not supported yet.

The policy importer will emit lots of warnings via
`MetadataImporter.Errors` (as warnings, not errors) whenever
it encounters something that it doesn't understand and
is also forgiving towards unknown and/or mal-formed
policy assertions.

This behavior is different from the MS runtime, which is
very strict, but there are simply too many missing pieces
to be more pedentic here.  Check whether Errors.Count == 0
to see whether all policy assertions have been correctly
imported.

There are also a few metadata samples, which are part of the
new nunit tests.  These are currently working:

  BasicHttp.xml, BasicHttp_Mtom.xml, BasicHttp_NtlmAuth.xml,
  BasicHttp_TransportSecurity.xml, BasicHttps.xml,
  BasicHttps_NtlmAuth.xml, NetTcp.xml, NetTcp_TransferMode.xml,
  NetTcp_TransportSecurity.xml

There are a few more in the Tests/MetadataTests/Resources/
directory which demonstrate missing pieces.
fix xbc bug #8592: Make sure to reload configuration when Reset() was invoked.

Patch by Kei Nakazawa.
fix bug #8533 - more than one user config section should be generated in ApplicationSettingsBase.Save().

Patch by Kei Nakazawa.
Use same rule for reference alias identifer as for normal identifiers.
Making the behavior of substring versions of string.CompareOrdinal and string.CompareOrdinalCaseInsensitive match Microsoft's implementation.

The MSDN documentation states "Because CompareOrdinal is a static method, strA and strB can be null. If both values are null, the method returns 0 (zero), which indicates that strA and strB are equal. If only one of the values is null, the method considers the non-null value to be greater." Previously, CompareOrdinal and CompareOrdinalCaseInsensitive would throw a NullReferenceException if strA or strB was null.
Merge pull request #512 from LogosBible/string_CompareOrdinal

Making the behavior of substring versions of string.CompareOrdinal and s...
[monkeydoc] Tiny refactorings
[monkeydoc] Restore mono.addins provider
[monkeydoc] Add support for multiple input directory in ecma-provider
[monkeydoc] Move Node class to its own file
[monkeydoc] Allow to set RootTree on HelpSource. Required by mdoc.
[mdoc] Remove obsolete warning
[System.Windows.Forms] Fix documentation to remove illegal XML characters.
[build] Always report full stack-trace when running mdoc in mcs/docs.
[monkeydoc] Don't allow empty caption or element when creating nodes.
[monkeydoc] Fix ecma doc generation
[monkeydoc] Correctly instantiate read and write zip handles for ZipStorage.
[monkeydoc] Special case pluralization of 'Property'.
Make WaitHandle.Wait* behave the same wrt WAIT_IO_COMPLETION. Fixes #8566.

Make the all check for exceptions if interrupted, and wait again
with a re-calculated timeout if no exceptions were to be thrown.

This fixes a deadlock in WaitAny, because WaitAny wasn't checking
for exceptions, just re-calculating the timeout. It also makes
the methods behave the same wrt other APC reasons.
[xbuild] handle <NoWarn> tags of the form <NoWarn>1234, 5678</NoWarn>,
for improved compatibility with msbuild