Better control in analyze_audiofile, faster decoder

This PR changes the `musly_track_analyze_audiofile` API and corresponding decoder implementation. Instead of accepting a `max_seconds` parameter, decoding the first `max_seconds` of the file and then passing the central 30 seconds of the decoded part to `musly_track_analyze_pcm`, it now accepts a `excerpt_length` and `excerpt_start` parameter and decodes only what's used for analysis later (if the audio file's length can be estimated and the audio file supports skipping). This significantly reduces the time needed for decoding.
Furthermore, it fixes a memory leak and adds supports for planar samples (produced by some MP3 decoders).