Make all public libsolv headers C++ safe

A few headers already included 'export "C"' blocks, also wrapping
other #include's. This patch cleanly wraps the contents of all public
headers instead.
Use the hidden fopencookie() on Haiku
Add basic Haiku support to build system
Add Haiku semantics version comparison
Add support for Haiku compat version comparison
Add Haiku repository support to libsolvext
Add Haiku support in example solver