io: Allow asynchronous errors for socket init failures

Sometimes we don't get a callback if the socket itself could not be
created. We offer the option to convert it into one

Change-Id: I1552fd6a93855f86f79c4f3932daa5154b63c5d9
Reviewed-on: http://review.couchbase.org/28131
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>