Feature opensubtitle promise

Just a little refactoring to return a Promise instead of execute callback, brings consistency to subs providers API and future package provider interface
Should also set `hasSubtitles = true` here to avoid it getting stuck on "Waiting for subtitles..."