(Preliminary) Solaris/SunOS support

This compiles on SmartOS (SunOS / illumos) using GCC 4.7.
Clang complains about "madvise" not being "posix.madvise" but I don't have any "elegant" solution to fix that for now (and it fails linking afterwards because of conflicts anyway.. I think clang on SunOS is just broken).

Tests fail but it's intended apparently.
The frontend works fine.

As we discussed on IRC, we should evaluate doing a `sun.mk` override makefile, but we can do that later.

Part of #112 
I guess it depends on how heavy the logic gets. If we only need one #define for some OS compat mode, then we should keep it all in a centralized header. but if the logic starts getting hairy, we can split it out and include based on OS.