Link against LLVM library if present.

Summary: Add LLVM library to CMake build system. The library is added as optional, i.e. if the library is not present the build will go on. If it is present "-DUSE_LLVM" will be passed to the compiler. Only accept LLVM versions 3.4 and above.

Reviewed By: @jasone

Differential Revision: D1471580
socket extension: use explicitly sized arrays

Reviewed By: @elgenie

Differential Revision: D1463435
Add more tests for checked map arrays

Summary: Added tests for
* apc_add
* array_chunk
* array_combine
* array_diff
* apc_fetch/apc_store msarray member
* array_diff_key for msarray
* array_fill_keys
* array_filter
* array_push
* array_walk
* array_walk_recursive
* array iterator functions (each, next, prev, reset, end, key, current)
* natsort

Reviewed By: @paroski

Differential Revision: D1490424