Fix libs in snow-common.pc.in
Add s_throw, make exception-throwing optional

If USE_EXCEPTIONS is defined, throws exceptions, if not, exit(1). This
isn't included in the config.hh because it should be defined on a per-
project basis, not something that affects everything. So, snow-common
might not throw exceptions and just error out, but the project using
it might still choose to throw exceptions.

Also, all the ifdef __cplusplus crap is gone.
Add option to disable exceptions in library.
Add quotes around name to separate it from the dots
General fixer-upper.

- Some export markers in some places.
- throw X(...) replaced with s_throw(X, ...).
- typedef Y X; replaced with using X = Y;
- include snow/config.hh in more places.