reentrant cJSON parsing and various fixes: allow reliable cJSON stream parsing in multiple threads

 * instead of setting a global error pointer, the cJSON_Parse_Stream() end_ptr is recursively
   passed down the parser functions and modified.
   (see how strtol() from libc modifies its endptr argument)
 * fixed partial parsing of true/false/null constants
 * fixed stream parsing in general. the old cJSON "end pointer" was not updated often enough
   to tell between an incomplete and erroneous message reliably.
 * fixed space skipping (ignore only actual whitespace characters)