Go 1.0 compat, fixed bug on 32-bit platforms.

- Go 1.0 required a panic or return to be the last statement of every
  function that returned something, so unreachable markers were added.

- Go wasn't aligning an int64 in Client properly on 32-bit ARM builds,
  so the atomic ops caused crashes. Instead of aligning the int64
  correctly, I simply made it 32 bit (non-atomic) and increment it
  while Client.connectionsLock is held. This will probably end up being
  faster even on 64-bit, because connectionsLock needed to be acquired
  anyway, so there was no point in atomically incrementing just to
  acquire a lock afterwards.