Avoid use-after-free in folly::cEscape/cUnescape
Avoid use-after-free in folly::cEscape/cUnescape

Summary:
The current tests fail ASAN with the output:

```
==3263974== ERROR: AddressSanitizer: heap-use-after-free on address 0x6008000267e8 at pc 0x7fc9fe458de1 bp 0x7fff340d9da0 sp 0x7fff340d9d78
READ of size 24 at 0x6008000267e8 thread T0
#0 0x7fc9fe458de0 in strlen _asan_rtl_
#1 0x7fc9fb14ca08 in lj_cf_ffi_string /home/engshare/third-party2/LuaJIT/2.0.2/src/LuaJIT-2.0.2/src/lib_ffi.c:667
#2 0x7fc9fb172abd in lj_BC_FUNCC ??:0
#3 0x7fc9fb15fbbb in lj_cf_package_require /home/engshare/third-party2/LuaJIT/2.0.2/src/LuaJIT-2.0.2/src/lib_package.c:434
#4 0x7fc9fb172abd in lj_BC_FUNCC ??:0
#5 0x7fc9fb160361 in lua_pcall /home/engshare/third-party2/LuaJIT/2.0.2/src/LuaJIT-2.0.2/src/lj_api.c:1052
#6 0x7fc9fb0ed106 in facebook::tools::make_lar::(anonymous namespace)::call(lua_State*, int, int) /tmp/tools/make_lar/LuaMainLib.cpp:275
#7 0x7fc9fb0ed3bb in facebook::tools::make_lar::(anonymous namespace)::runScript(lua_State*, int, char**) /tmp/tools/make_lar/LuaMainLib.cpp:319
#8 0x7fc9fb0edaef in facebook::tools::make_lar::(anonymous namespace)::run(int, char**) /tmp/tools/make_lar/LuaMainLib.cpp:439
#9 0x7fc9fb0edc96 in facebook::tools::make_lar::runLuaMain(int, char**) /tmp/tools/make_lar/LuaMainLib.cpp:460
#10 0x7fca015fcb8f in main ??:0
#11 0x7fc9fd85cefe in __libc_start_main ??:0
#12 0x400658 in _start /home/engshare/third-party2/glibc/2.17/src/glibc-2.17/csu/../sysdeps/x86_64/start.S:123
0x6008000267e8 is located 24 bytes inside of 48-byte region [0x6008000267d0,0x600800026800)
freed by thread T0 here:
#0 0x7fc9fe45b13a in operator delete(void*) ??:0
#1 0x7fc9fe1f5521 in std::string::_Rep::_M_dispose(std::allocator<char> const&) /home/engshare/third-party2/libgcc/4.8.1/src/gcc-4.8.1/x86_64-facebook-linux/libstdc++-v3/incl
ude/bits/basic_string.h:564
#2 0x7fc9f09f24df in cUnescape /tmp/fblualib/util/Util.cpp:176
#3 0x7fc9fb174c61 in lj_vm_ffi_call ??:0
#4 0x7fc9fb14bdb3 in lj_ccall_func /home/engshare/third-party2/LuaJIT/2.0.2/src/LuaJIT-2.0.2/src/lj_ccall.c:877
#5 0x7fc9fb14d346 in lj_cf_ffi_meta___call /home/engshare/third-party2/LuaJIT/2.0.2/src/LuaJIT-2.0.2/src/lib_ffi.c:228
#6 0x7fc9fb172abd in lj_BC_FUNCC ??:0
previously allocated by thread T0 here:
#0 0x7fc9fe45af7a in operator new(unsigned long) ??:0
#1 0x7fc9fe1f5390 in std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) /home/engshare/third-party2/libgcc/4.8.1/src/gcc-4.8.1/x86_64-fac
ebook-linux/libstdc++-v3/include/ext/new_allocator.h:104
#2 0x7fc9fe1f6c3d in char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) /home/engshare/third-party
2/libgcc/4.8.1/src/gcc-4.8.1/x86_64-facebook-linux/libstdc++-v3/include/bits/basic_string.tcc:140
#3 0x7fc9fe1f706c in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) /home/engshare/third-party
2/libgcc/4.8.1/src/gcc-4.8.1/x86_64-facebook-linux/libstdc++-v3/include/bits/basic_string.h:1751
#4 0x7fc9f09f24c4 in cUnescape /tmp/fblualib/util/Util.cpp:176
#5 0x7fc9fb174c61 in lj_vm_ffi_call ??:0
#6 0x7fc9fb14bdb3 in lj_ccall_func /home/engshare/third-party2/LuaJIT/2.0.2/src/LuaJIT-2.0.2/src/lj_ccall.c:877
#7 0x7fc9fb14d346 in lj_cf_ffi_meta___call /home/engshare/third-party2/LuaJIT/2.0.2/src/LuaJIT-2.0.2/src/lib_ffi.c:228
#8 0x7fc9fb172abd in lj_BC_FUNCC ??:0
```

This is because we're returning a pointer to data owned by a temporary
std::exception back to Lua.

One fix is to have a thread-local error buffer, and store the
temporary data in there.

Test Plan:
```
tulloch at devgpu024 in /data/users/tulloch/fbcode (218299b|REBASE-i|fix-failing-unit-tests)
∴ fbconfig --sanitize=address fblualib/util/test:util_test && mt
Configuring 20 targets
Writing 519/519 rules to makefile [100%]
Done. Fbconfig run id: EpsgjbdU5rW
2.70s fblualib/util/Util.cpp (pic)
0.01s _build/dbg/fblualib/util/6af8c21/libclib.a
0.31s _build/dbg/fblualib/util/test/util_test.linkables/libfblualib_util_clib.so
Linking _build/dbg/fblualib/util/test/util_test.linkables/libomnibus.so...
6.27s _build/dbg/fblualib/util/test/util_test.linkables/libomnibus.so
0.15s _build/dbg/fblualib/util/test/util_test.llar
0.55s _build/dbg/fblualib/util/test/util_test.lar
Starting parallel test runs using 40 jobs...
fblualib/util/test:util_test - <TestFunction>:testDequeSimple...ok (0s)
fblualib/util/test:util_test - <TestFunction>:testCUnescape...ok (0s)
fblualib/util/test:util_test - <TestFunction>:testCEscape...ok (0s)
fblualib/util/test:util_test - <TestFunction>:testLongestCommonPrefix...ok (0s)
fblualib/util/test:util_test - <TestFunction>:testSetDefaultNoStore...ok (0s)
fblualib/util/test:util_test - <TestFunction>:testStdString...ok (0s)
fblualib/util/test:util_test - <TestFunction>:testDefaultDictBehavesAsExpected...ok (0s)
fblualib/util/test:util_test - <TestFunction>:testIsList...ok (0s)
fblualib/util/test:util_test - <TestFunction>:testDefaultDictGivesSeparateInstances...ok (0s)
fblualib/util/test:util_test - <TestFunction>:testRelativeModule...ok (0s)
fblualib/util/test:util_test - <TestFunction>:testRandomSeed...ok (0s)
fblualib/util/test:util_test - <TestFunction>:testFilterKeys...ok (0s)
fblualib/util/test:util_test - <TestFunction>:testSetDefaultStore...ok (0s)
fblualib/util/test:util_test - <TestFunction>:testCreateTempDir...ok (0s)
fblualib/util/test:util_test - <TestFunction>:testClocks...ok (0s)
Finished 16 test cases in 0.72 seconds with a parallelism of 40
Test Run Time:
fblualib/util/test:util_test: 0s
Test Results Summary:
Passed: 16
100% successful
Fbmake run id: HPOertNXEs3
```

Reviewed By: jhj@fb.com

FB internal diff: D1927316

Signature: t1:1927316:1426781108:e3a5311e6b723c04e20bd86903f01e6e8dfe4daf

facebook/fblualib,soumith/fblualib,raphaelamorim/fblualib,facebook/fblualib,szagoruyko/fblualib,raphaelamorim/fblualib,soumith/fblualib,szagoruyko/fblualib