Fix tuple compilation for VS2017.

VS2017 doesn't like deducing alias types, leading to a bunch of compile
errors for functions involving the `tuple` alias.  Replacing with
`TupleImpl` seems to solve this, allowing the test to compile/pass.
diff --git a/test/tuple_test.cpp b/test/tuple_test.cpp
index 8d8a5aa..c3bbe37 100644
--- a/test/tuple_test.cpp
+++ b/test/tuple_test.cpp
@@ -99,7 +99,7 @@
   VERIFY_IS_EQUAL(x, tuple_impl::get<0>(tuple3));
   VERIFY_IS_EQUAL(y, tuple_impl::get<1>(tuple3));
   VERIFY_IS_EQUAL(z, tuple_impl::get<2>(tuple3));
-  tuple<int, float, double> tuple3c(-2, -2, -2);
+  tuple<int, float, double> tuple3c(-2, -2.0f, -2.0);
   tuple3c = std::move(tuple3b);
   VERIFY_IS_EQUAL(tuple_impl::get<0>(tuple3c), tuple_impl::get<0>(tuple3));
   VERIFY_IS_EQUAL(tuple_impl::get<1>(tuple3c), tuple_impl::get<1>(tuple3));