Make der::Input a little closer to Span

This adds a bunch of methods from Span, with the end goal of eventually
making it into a typedef for Span<const uint8_t>. In doing so, this
makes Input implicitly convertible to Span<const uint8_t> and every
other span<const uint8_t> type. For the other direction, I've removed
the 'explicit' marker on the Input(Span) constructor.

I've kept the older spellings around to avoid forcing us to fix it all
at once, but after this rolls in to various places, the next things to
do would be:

1. Go through downstream code and switch them to using the span-like
   spellings. Better yet, have them just pass to their own span type.

2. Since Input <-> Span converts implicitly, we can freely start making
   our APIs take Span instead of Input. Also start cleaning up a bunch
   of now unnecessary explicit der::Input(foo) calls now that, like
   span, it's implicit.

3. Decide what to do with the char vs uint8_t disaster. I'm thinking we
   add free functions to convert between the two.

In doing so, I've also switched some easy places to use more span-y
APIs.

Bug: 661
Change-Id: I731bb110a4fdadd99cb2894e48f016f0b19110ac
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/65668
Auto-Submit: David Benjamin <davidben@google.com>
Reviewed-by: Bob Beck <bbe@google.com>
Reviewed-by: Matt Mueller <mattm@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
diff --git a/pki/parse_values_unittest.cc b/pki/parse_values_unittest.cc
index ee9e481..e29b4b9 100644
--- a/pki/parse_values_unittest.cc
+++ b/pki/parse_values_unittest.cc
@@ -317,7 +317,7 @@
   ASSERT_TRUE(bit_string.has_value());
 
   EXPECT_EQ(0u, bit_string->unused_bits());
-  EXPECT_EQ(0u, bit_string->bytes().Length());
+  EXPECT_EQ(0u, bit_string->bytes().size());
 
   EXPECT_FALSE(bit_string->AssertsBit(0));
   EXPECT_FALSE(bit_string->AssertsBit(1));
@@ -349,7 +349,7 @@
   ASSERT_TRUE(bit_string.has_value());
 
   EXPECT_EQ(1u, bit_string->unused_bits());
-  EXPECT_EQ(1u, bit_string->bytes().Length());
+  EXPECT_EQ(1u, bit_string->bytes().size());
   EXPECT_EQ(0xFE, bit_string->bytes()[0]);
 
   EXPECT_TRUE(bit_string->AssertsBit(0));