Cast char to unsigned char in all ctype.h calls

Some standard libraries implement these as table lookup macros which
generate a warning (Array subscript has type 'char') when given a char.
Allow sdsrange to make a string with length 0.

sdsrange(str, 0, -2) should result in an empty string.

For example

sds str = sdsnew("hello");
while (sdslen(str) > 0)
	str = sdsrange(str, 0, -2);

Would result in an inifinty loop before but will work as expected after
this patch.
Fix header guards naming

Identifiers beginning with __ are reserved for any use
in C (C99, 7.1.3p1).
Add check for realloc failure in sdsRemoveFreeSpace
Merge branch 'char-subscripts' of https://github.com/lluchs/sds
Merge branch 'master' of https://github.com/iveqy/sds
Merge branch 'master' of https://github.com/ogay/sds

Conflicts:
	sds.c