Don't segfault on unbalanced quotes.
sdssplitargs(): now returns NULL only on error.

An empty input string also resulted into the function returning NULL
making it harder for the caller to distinguish between error and empty
string without checking the original input string length.
sdssplitargs(): on error set *argc to 0.

This makes programs not checking the return value for NULL much safer
since with this change:

1) It is still possible to iterate the zero-length result without
crashes.
2) sdssplitargs_free will work against NULL and 0 count.
More specific error message in loadServerConfigFromString().
sds.c: sdssplitargs_free() removed as it was a duplicate.
Cluster: sdssplitargs_free() -> sdsfreesplitres().
redis-cli: use sdsfreesplitres() instead of hand-coding it.
Handle a non-impossible empty argv in loadServerConfigFromString().

Usually this does not happens since we trim for " \t\r\n", but if there
are other chars that return true with isspace(), we may end with an
empty argv. Better to handle the condition in an explicit way.