MB-13791: wrong semantics to golang's defered function.
MB-13791: wrong semantics to golang's defered function.

- parameters to deferred function are evaluated upfront
  and in this case the boolean is passed by value.
- Additionaly following bugs where fixed,
  * `err` value (if any) needs to be returned after exiting
    the streamResponse() loop in Lookup, Range and ScanAll functions.
  * connection to be marked un-healthy if StreamEndResponse is
    not received.

Change-Id: I273f9eb8113fc2628fb958b653ba8968b806df21

jchris/indexing,jchris/indexing,jchris/indexing,jchris/indexing