- Adds file, readable_file, writable_file, read_only_file,
write_only_file and read_write_file classes.
- Adds file_share_mode, file_open_mode, file_buffering_mode enums.
- Supports async read/write but only synchronous open for now.
- Removes support for VS 2015 since implementation makes use of
std::optional which is only available in VS 2017.