Introduce Blob.ContentAsText()
Support BOM detection in Blob.GetContentAsText()

Fixes #475