path: change mp_splitext() semantics

Including the "." in the returned extension was too inconvenient. I
think originally, the semantics were supposed to work like in Python,
but screw this.

Also, return NULL instead of "" on failure (which is what its only user
actually seems to expect).
path: don't accept empty protocol as valid

mp_is_url("://") returned true.
path: add function to split URL into prefix and path

Used in the following commit.
player: remove code duplication for auto-loaded config profiles

Code for loading "[vo.vdpau]" profiles and similar. The messages printed
on loading change, but other than that, everything should behave about
the same.
player: move code around

The only thing that used mp_load_per_file_config() was inside
configfiles.c too, so remove the declaration from core.h and move the
function before its use.
player: simplify mp_load_per_file_config

Get rid of the stupid and error-prone buffer size calculations, use
snprintf instead of strcpy.
stream_smb: remove dead code

Yep, smb_username/password were unused since forever, even in MPlayer.
Removal untested. (Does anyone even use smb://?)
asxparser: remove commented code
subreader: remove overlapping strcpy

Looks like this relied on undefined behavior.
subreader: replace some strcpy calls