Handle boost::iostreams::gzip_error in the SDL_net-based network layer

(part of bug #20205)

The exception in question originated from the read_gz() call and caused
the entire process to abort because of a non-fatal issue occurring in a
secondary thread.

First spotted in campaignd. See the bug report for details.

Conflicts:
	changelog
Fix bug #20205

Malformed data caused config::error exception to be thrown.

Unfortunately campaignd on catching such an exception had no way to
close the right connection, instead all connections were closed because
the local variable that was supposed to contain connection number wasn't
updated. This is fixed by using boost.exception to attach the necessary
data to config::error objects so it can be used at the catch site.
Brainfart fix