Skip building diff patch while doing stage/reset
Add optional encoding to Touch()
Introduce Blob.ContentAsText()
Support BOM detection in Blob.GetContentAsText()

Fixes #475
Marked non-extensible classes as sealed