subsonic: cleanup and split monolithic file into files for each API endpoint