Solaris!

So I decided to run the build and test cases for Solaris today. The results have significantly deteriorated since last time I ran them.

This PR fixes a few issues:
* ```vsnprintf``` on Solaris doesn't check for ```NULL``` pointers. For portability we should check that they are not ```NULL``` especially in ```giterr_set```.
* We should be linking in ```mtmalloc``` for multi-threaded builds on Solaris
* ```regex.h``` and friends are kinda broken/outdated on Solaris, build the bundled version.
* Add support for the Sun Pro compiler. Not everyone has the luxury of using gcc or clang.
* Add atomics for Solaris (when using the Sun Pro compiler)

The unicode test cases fail as well, will post their results.