I had assumed I could just pass `detectEncodingFromByteOrderMarks` through to the `StreamReader` ctor, but I got unexpected behavior. Specifically, the BOM is removed in either case - I assume the difference is that given `false` the specified encoding is always used.

So I guess the question is: should `ContentAsText()` always strip the BOM, and then decode the remaining bytes according to according (detected or specified)? Or should the existing decoding behavior be preserved if `detectEncodingFromByteOrderMarks: false`?

I've implemented the latter, but I'm thinking the former may present a better API. Either way, it would probably be good to extent the test to separate how the test content is encoded/decoded - a mismatch is where things get interesting.