bug fix:malloc may not free as ngx_strerror_init failed

1. Have not free the memory when malloc function failed.
2. Malloc function returns a unique pointer value if the length equals to zero. This pointer is stored in ngx_sys_errlist[err].data, which may be used in some area, leading to undefined error. 
3. The memory have not been initialized when malloc successfully.