Allow zero-length strings for xor_strings() and xor_strings_with_char()

Without this patch, something like "strxor('', '')" will trip the assertions. I'm guessing this isn't intended behavior -- if so, it should probably throw an exception instead.

Also worth pointing out that this code is checking for pointer overflows incorrectly -- see http://lwn.net/Articles/278137/ . But since these are (debug) assertions, it might not be such a big deal.

Although is it intended that these are on in release mode?