FIle/FileUtils refactoring

* Add CFile::LoadFile function
* Move code logic from FileUtils::LoadFile to CFile::LoadFile
* Implement class auto_buffer
* Replace ugly reference to pointer with reference to auto_buffer for CFile::LoadFile

As result, you can
```` C++
CFile file;
auto_buffer buffer;
file.LoadFile("Some/file.ext", buffer);
file.SomeOtherFunction();
````