* feat(path): added operator= for path_components to keep component type and value synchronized
* fix(path): added missing TOML_EXPORTED_MEMBER_FUNCTION directives
* refactor(path): changed constructors to preserve type - value correlation in path_component
* fix(path): added TOML_EXPORTED_CLASS for path_component
* fix(path): corrected placement of TOML_EXPORTED_CLASS for path_component. urgh.
* fix(path): tidied up some constructors/accessors in path_component
- re-ordered most of the `.inl` implementations to match the declaration order in the class body
- fixed a few missing cases of `noexcept`
- added additional operator overloads for +=
- added `operator==` and `operator!=` to `path_component`
- changed parse method to "parse into" so it could be re-used in more places without creating a temporary vector
- changed all binary operators to be 'hidden friends'
- moved the "to string" logic to a "print_to" for streams to avoid creating a temporary string in the ostream<< operator
- made the string conversion operators `explicit`
- renamed `string()` to `str()` to be consistent with `toml::key` and `std::stringstream`
- renamed `wstring()` to `wide_str()` to be consistent with `toml::source_region`
- renamed `parent_path()` to `parent()`
- removed the `const (w)char*` operator overloads - these were already sufficiently covered by the `std::(w)string_view` ones
- removed the `operator/` overloads - since we aren't a file path the `/` doesn't have the same meaning (also `operator+` was doing the same thing)