Fix netdutils::extract and SliceTest.

netdutils::extract was taking Tail... arguments by value, but the
intention was to take them by reference and populate their memory.

I checked and there are no current calls to the variadic overload
outside of SliceTest.cpp.

Bug: 67431299
Test: modified Android.mk to include SliceTest.cpp in netd_unit_test then runtest -x server/netd_unit_tests.cpp
Change-Id: I6a28970eb0734427fa7a3f21c6a2984df1585ceb
diff --git a/libnetdutils/include/netdutils/Slice.h b/libnetdutils/include/netdutils/Slice.h
index 85a0980..f3f794b 100644
--- a/libnetdutils/include/netdutils/Slice.h
+++ b/libnetdutils/include/netdutils/Slice.h
@@ -125,7 +125,7 @@
 // is less than the sum of all data pointers a suffix of data will be
 // left unmodified. Return the number of bytes copied.
 template <typename Head, typename... Tail>
-inline size_t extract(const Slice src, Head& head, Tail... tail) {
+inline size_t extract(const Slice src, Head& head, Tail&... tail) {
     const auto extracted = extract(src, head);
     return extracted + extract(drop(src, extracted), tail...);
 }