smartplaylists: some cleanup

These commits basically contain cleanup work like using XMLUtils where possible to read/write XML files instead of coding it manually. Furthermore it introduces a "browseable" property instead of having that as a field. This makes it easier to allow different field types to be browseable and not just strings.

I have some other work (new features) in the queue that will rely on this cleanup.