Sometimes I wonder if this should be named `writeText()` for better symmetry with `readAsText()`.  Or do we think future binary file IO might work through dynamic typing of 'data'? (e.g. `{string|ArrayBuffer}`)