Fix memory leaks in Inline_File_Provider (#659)
## Summary
- `clear_input_files()` and `remove_input_file()` were leaking
`std::stringstream` objects by calling `vector::clear()`/`erase()`
without deleting the raw pointers
- `get_ostream()` also leaked a `new std::stringstream` on every call
- Fixed by switching `input_files` and `output_files` members from
`std::vector<std::pair<std::string, std::stringstream*>>` to
`std::vector<std::pair<std::string,
std::unique_ptr<std::stringstream>>>`, so the vector destructor and
`erase()` handle cleanup automatically
## Test plan
- [ ] Build `utility` library in debug mode: `cd source && ./scons.py
-j16 mode=debug utility`
- [ ] Run utility unit tests: `cd source && python test/run.py -j16
--mode=debug`