Guess format from URL in the Player constructor

This never changes, so we should define it once instead of once per guessFormatFromURL call.