Separate per-song data from general driver configuration.

- split song-specific variables from SMPS_CFG and created SMPS_SET
- code uses "const SMPS_CFG" where possible
- moved xxLen and xxData into separate structure (SeqData, DrumData, etc.)
- removed malloc/free from SmpsSet.InsLib (now a non-pointer member)
finish SMPS memory management / music save states

- added DeinitDriver()
- SMPS driver frees SMPS_SET structures when they get unused
- music save states are now fully working (no more crashes when restoring)
- fixed a few other bugs