download() with kwargs clobbers multiple parts/media

Describe the Bug

The download() method on PlexObject class when passed kwargs will use getStreamURL() method. However it is called exactly the same for each Media Part that is being looped over.

https://github.com/pkkid/python-plexapi/blob/dd80deb18fe1111050777d067f3d87b0524d4850/plexapi/base.py#L869

This results in generating transcode urls for the same media and part index multiple times, which default to 0 and not defined in the kwargs passed to getStreamURL().

https://github.com/pkkid/python-plexapi/blob/dd80deb18fe1111050777d067f3d87b0524d4850/plexapi/base.py#L779-L780

Code Snippets

No response

Expected Behavior

download() method's parts loop should set mediaIndex and partIndex when calling getStreamURL() in order to return different transcoding urls.

Additional Context

This is still affected by the #1208 issue where downloaded file names could clobber the file written to disk.

Operating System and Version

All

Plex Media Server Version

All

Python Version

All

PlexAPI Version

2.x