Breaking changes:
- Renamed Torrent to TorrentMetadata.
- Extracted TorrentFileParser into an interface and implementation.
Other changes:
- Made TorrentFileParserImpl thread-safe and reusable.
- Added an otherValues field to TorrentMetadata to store all untracked fields from the .torrent file.
- Cleaned up unchecked cast warnings.
- Fixed a potential error when parsing file paths