Blob.slice
Rant time, why the hell does is the `end` parameter of `Blob.slice(start, end)` the index of the first byte **not** included? Why does this API go against almost every other stream API out there?