message: Catch exceptions over the whole of the host data move function
  Summary: The stream connection call was outside of the catch
  Test Plan:
  None (is in response to an external script which demonstrates failure
  to catch the stream connection exception)
  Reviewers: jamesn, jakeh, georgep
diff: @@ -858,6 +858,7 @@ Status PoplarExecutor::MoveDeviceToHost() {
  uint64 total_size = 0;
  uint64 total_count = 0;
  + try {
  for (const auto& tc : allocations_) {
  // Set up streams
  if (tc->on_device == true && !tc->output_handle.empty()) {
  @@ -878,10 +879,7 @@ Status PoplarExecutor::MoveDeviceToHost() {
  // perform device -> host read
  if (total_count > 0) {
  - try {
  current_engine_->run(PoplarProgramType::DEVICE_TO_HOST);
  - } catch (const std::logic_error& e) {
  - return PoplarExceptionToTensorflowStatus("[Device to host] ", e);
  }
  if (current_config_.profiling().enable_io_trace()) {
  @@ -898,6 +896,8 @@ Status PoplarExecutor::MoveDeviceToHost() {
  tc->output_handle.clear();
  tc->input_handle.clear();
  }
  + } catch (const std::logic_error& e) {
  + return PoplarExceptionToTensorflowStatus("[Device to host] ", e);
  }
  return Status::OK();
  }
  