File modify

The changes are necessary, because some methods have not persisted the existing BOM and mixed up the content of an existing file.

The default encoding for files is UTF-8 without BOM, like in .Net.
MockFileData.TextContents uses the default encoding, too. 
So setting value via TextContent can destroy the encoding of the file. I am not satisfied with this implementation. However it matches the behavior of .Net very close.

Adapted two test cases, because they were not correct.

@tathamoddie if you need help, just ask