Enable per-thread errno on Solaris

This addresses bug 4354 for - Phobos should expose per-thread errno - on Solaris systems.

On Solaris, without the MT errno definition, errno is always the errno value of the first thread of the processes.  
While porting druntime and Phobos, this was the source of a lot of frustration as unit tests were failing with impossible and non-sensical error messages due to showing the wrong error value.

Unfortunately, that does not work with the Oracle (aka. Sun) Studio compilers .  They accept -pthread, but do not set _REENTRANT when invoking cpp, leaving you with the single-threaded errno definition.  gcc however does set _REENTRANT with -pthread (I'm not sure about clang), so this seems to be the most compatible option.

Since I don't have a build env setup for other platforms, I wanted to be conservative by only enabling it where I can test it.  Inspection does suggest this is only needed on Solaris and Linux, as it appears FreeBSD and OS X always define a mt-safe errno.