fixed data race in core.Connection.Close().
The problem is triggered by the following events:
1. VPP stops.
2. core.Connection.healthCheckLoop() detects it and calls disconnectVPP(),
which does close healthCheckDone channel for the first time.
At this point Connection becomes unusable - re-entrance to
connectLoop() will return immediately because of a closed
healthCheckDone channel.
But, the race is that connection may set c.vppConnected = 1
before terminating the connect loop.
3. User calls Connection.Close(), who seed c.vppConnected = 1,
and tries to close already closed channel, which leads to a panic.
This commit fixes this race by telling disconnectVPP() whether
it is a terminal stop triggered via Close(), or a temporary one
from connectLoop().
Change-Id: I555149da35ca3dc2b606bad59f2101266c0ef6b9
Signed-off-by: Sergey Elantsev <elantsev.s@yandex.ru>