server: Improve error reporting.

If we fail to bind to the server address, do not try and listen lest the
reported error always be "invalid argument".

Also, return whether or not we errored from server_init() in case we
want to respond differently in the future.
Merge pull request #1297 from splinterofchaos/server-errors

server: Improve error reporting.