Add Reader impl for &[u8]

This continues the work @thestinger started in #18885 (which hasn't landed yet). Instead of adding more methods to `BufReader`, this just allows a `&[u8]` to be used directly as a reader.