Streamdetails fixes

This PR fixes a few problems concerning stream details:
- Stream details are now properly loaded/stored for items with incomplete/empty infotags;
- Fixed racing between DVDPlayer's GetStreamDetails() and CApp:PlayFile() causing the duration/aspect to always be wrong (0) causing it to be stored in the db over and over again and screwing up the streamdetails in the infotag. This would also occasionally cause showing 4:3 in the GUI for video items with totally different AR;
- As a bonus this puts all the logic in one place (FileSaveState job).