[MS.Build] fix default build targets to not return empty list in Project.

And since the code is almost the same as existing ProjectInstance one, just
make it identical. (Should be unified, but depends on members, hence TODO.)
[MS.Build] fix some TaskFactory related bugs uncovered by CodeTaskFactory impl.

- ITaskFactory could return null, so check the return value.
- UsingTask descendants could have property references, so use ExpandString.
- TaskBody was not appropriately passed to internal structure.
[msbuild] implement CodeTaskFactory i.e. inline tasks.
[system] Small optimization for Xamarin.Mac (where we know we're executing on a Mac)
Update order.xml
[System] Fix parsing of IPv6 addresses (bug #18574)

From Dick Porter:

The IPv6 address parser misses some syntax errors, and can become confused by
addresses that at first glance look IPv4 compatible.  The attach patch contains
the following fixes:

Don't fail to parse an address if we mistakenly thought it was IPv4 compatible
or mapped, just treat it as IPv6.

Fix IPv4-compatible and mapped address formatting in ToString().

Fix parsing of colons - specifically occurrences of ':::'.

Make sure blocks of digits are no longer than 4 characters.

Add some more parsing tests to Mono's NUnit test suite.

Add a NUnit test for bogus IPv6 addresses.
Revert "Merge pull request #981 from methane/websocket"

This reverts commit 62cc262196951b67a13069444b889dc71758776c, reversing
changes made to c1028cf91286489ef075a33c91d29d1efea8d200.
[build] Use LOCAL_MCS_FLAGS to give preference to the intermediate dir in System builds, and do not use temporary files for corlib builds
[build] Add new project files based on the new staged build
[xbuild] implement ToolLocationHelper.GetPathToStandardLibraries().
[xbuild] fix NET_2_0 build.
Revert "[system] Add new StreamWebSocket.cs file to the mobile profile list of sources"

This reverts commit 00ecc7392d03c817d2f52de6758195633b2d28ee.
[Mono.Posix] Support OS X ENOATTR

Fixes: https://bugzilla.xamarin.com/show_bug.cgi?id=19991

The original Mono.Unix.Native.Errno design used the Linux <errno.h>
constants and values...largely because it was easy.

As it turns out, this is also incomplete. The getxattr(2) defines
ENOATTR as a possible error code. On Linux, ENOATTR is an alias for
ENODATA [0]. On OS X, ENOATTR is _not_ an alias. Furthermore, since
ENOATTR is not a Linux errno value (it's an alias!),
Mono_Posix_ToErrno() couldn't check for the native ENOATTR value, so a
Syscall.GetLastError() call after a failing Syscall.getxattr() would
fail with a System.ArgumentOutOfRangeException:

	$ csharp -r:Mono.Posix.dll
	Mono C# Shell, type "help;" for help

	Enter statements below.
	csharp> using Mono.Unix.Native;
	csharp> byte[] value;
	csharp> Syscall.getxattr(".", "test", out value);
	-1
	csharp> Syscall.GetLastError();
	System.ArgumentOutOfRangeException: Current platform doesn't support this value.
	Parameter name: value
	93
		at Mono.Unix.Native.NativeConvert.ThrowArgumentException (System.Object value) [0x00000] in <filename unknown>:0
		at Mono.Unix.Native.NativeConvert.ToErrno (Int32 value) [0x00000] in <filename unknown>:0
		at Mono.Unix.Native.Stdlib.GetLastError () [0x00000] in <filename unknown>:0

The fix is to add an Errno.ENOATTR field [1].

The complication is one of what enum value to use: at present, the
Errno values are based on the Linux values. In the case of ENOATTR
(and others), there is no Linux value. Meanwhile, there is the
possibility of additional Linux error values; how do we future proof
ourselves?

This isn't a perfect solution, but it should punt the problem down the
road a bit: Errno is an `int` enum, and thus has large range. To
support the OS X values, we add 1000 to the OS X error value.

	/* OS X: <errno.h> */
	#define ENOATTR		93		/* Attribute not found */

	// C# Errno enum:
	public enum Errno : int {
		// ...
		ENOATTR = 1093,
	}

This gives us 0..1000 for POSIX+Linux error codes, 1000..2000 for OS X
specific error codes, and as new platforms require additional support
they can all start at multiples of 1000.

Hopefully no single *nix platform will add more than 1000 error codes...

[0]: http://linux.die.net/man/2/getxattr
[1]: Related part of the fix: add all the OTHER <errno.h> values that
     OS X includes but weren't included in the Errno enum.
[mscorlib] Since .NET 4.5 some of the System.IdentityModel now is in the core, add this class
[system] Add SendMailAsync methods
Fix warnings
[build] Ensure that staged build directories are set on LOCAL_MCS_FLAGS

The LOCAL_MCS_FLAGS are passed to the compiler before the standard
directory for the profile.  This is important both for correctness,
and also assists the solution generator, since we can now precisely
determine which intermediate project must be referenced.
[msvc/scripts] Update order.xml file with Makefile changes, update generator
[build] The ecma.pub is one directory above
[Managed.Windows.Forms] Disable TRACE code, since it is broken