[Impeller] cleanup auto usage in host_buffer (#51875)

Remove some autos, make some things const refs, move some shared_ptrs.
diff --git a/impeller/core/host_buffer.cc b/impeller/core/host_buffer.cc
index 67d3ca2..1990df1 100644
--- a/impeller/core/host_buffer.cc
+++ b/impeller/core/host_buffer.cc
@@ -99,7 +99,8 @@
     DeviceBufferDescriptor desc;
     desc.size = length;
     desc.storage_mode = StorageMode::kHostVisible;
-    auto device_buffer = allocator_->CreateBuffer(desc);
+    std::shared_ptr<DeviceBuffer> device_buffer =
+        allocator_->CreateBuffer(desc);
     if (!device_buffer) {
       return {};
     }
@@ -107,7 +108,7 @@
       cb(device_buffer->OnGetContents());
       device_buffer->Flush(Range{0, length});
     }
-    return std::make_tuple(Range{0, length}, device_buffer);
+    return std::make_tuple(Range{0, length}, std::move(device_buffer));
   }
 
   size_t padding = 0;
@@ -120,14 +121,14 @@
     offset_ += padding;
   }
 
-  auto current_buffer = GetCurrentBuffer();
+  const std::shared_ptr<DeviceBuffer>& current_buffer = GetCurrentBuffer();
   auto contents = current_buffer->OnGetContents();
   cb(contents + offset_);
   Range output_range(offset_, length);
   current_buffer->Flush(output_range);
 
   offset_ += length;
-  return std::make_tuple(output_range, std::move(current_buffer));
+  return std::make_tuple(output_range, current_buffer);
 }
 
 std::tuple<Range, std::shared_ptr<DeviceBuffer>> HostBuffer::EmplaceInternal(
@@ -139,7 +140,8 @@
     DeviceBufferDescriptor desc;
     desc.size = length;
     desc.storage_mode = StorageMode::kHostVisible;
-    auto device_buffer = allocator_->CreateBuffer(desc);
+    std::shared_ptr<DeviceBuffer> device_buffer =
+        allocator_->CreateBuffer(desc);
     if (!device_buffer) {
       return {};
     }
@@ -149,7 +151,7 @@
         return {};
       }
     }
-    return std::make_tuple(Range{0, length}, device_buffer);
+    return std::make_tuple(Range{0, length}, std::move(device_buffer));
   }
 
   auto old_length = GetLength();
@@ -158,14 +160,14 @@
   }
   old_length = GetLength();
 
-  auto current_buffer = GetCurrentBuffer();
+  const std::shared_ptr<DeviceBuffer>& current_buffer = GetCurrentBuffer();
   auto contents = current_buffer->OnGetContents();
   if (buffer) {
     ::memmove(contents + old_length, buffer, length);
     current_buffer->Flush(Range{old_length, length});
   }
   offset_ += length;
-  return std::make_tuple(Range{old_length, length}, std::move(current_buffer));
+  return std::make_tuple(Range{old_length, length}, current_buffer);
 }
 
 std::tuple<Range, std::shared_ptr<DeviceBuffer>>
@@ -186,6 +188,10 @@
   return EmplaceInternal(buffer, length);
 }
 
+const std::shared_ptr<DeviceBuffer>& HostBuffer::GetCurrentBuffer() const {
+  return device_buffers_[frame_index_][current_buffer_];
+}
+
 void HostBuffer::Reset() {
   // When resetting the host buffer state at the end of the frame, check if
   // there are any unused buffers and remove them.
diff --git a/impeller/core/host_buffer.h b/impeller/core/host_buffer.h
index 4ed78d0..bb7af2d 100644
--- a/impeller/core/host_buffer.h
+++ b/impeller/core/host_buffer.h
@@ -147,9 +147,7 @@
 
   void MaybeCreateNewBuffer();
 
-  std::shared_ptr<DeviceBuffer>& GetCurrentBuffer() {
-    return device_buffers_[frame_index_][current_buffer_];
-  }
+  const std::shared_ptr<DeviceBuffer>& GetCurrentBuffer() const;
 
   [[nodiscard]] BufferView Emplace(const void* buffer, size_t length);