dispatch_addconnection: ensure strm is always allocated separately
dispatch_addconnection: ensure strm is always allocated separately

When we do realloc, the base location of connections array may change,
invalidating all pointers to it.  So instead of pointing to sock from
the connections array, malloc a new location that will stay.

Thanks StephenPCG for the analysis and initial patch.

This fix should close issue #318

grobian/carbon-c-relay,grobian/carbon-c-relay,grobian/carbon-c-relay