read whole file into std::string