handle if profiles.xml is not local

I had an error in my xbmc log related to loading the profiles.xml file. I've been experimenting with using path substitution on this file so I can use the same profiles on a bunch of xbmc installs without recreating them all. It seems the error is coming from this line in xmlfunctions.py

```
    fav_file = xbmc.translatePath( 'special://userdata/profiles.xml' ).decode("utf-8")
    tree = None
    if xbmcvfs.exists( fav_file ):
        tree = xmltree.parse( fav_file )
```

My file path is now pointing to a non-local location so the xmltree.parse function is throwing an IO error as the python file methods can't find the smb:// path returned. 

If I could I'd like to suggest using the xbmcvfs.File class and calling the xmltree.fromstring() method instead. This would make skin shortcuts more compatible with path substituted files. Not sure if profiles.xml is the only one being read in but wherever xmltree.parse() is being used this should take care of it.