THRIFT-2836 Add moveable_types option to C++ generator

Setting this option enables generation of MoveConstructible types,
allowing types to be bound via move in std::bind. This is especially
pleasant when using Thrift container types.
THRIFT-2882 Lua Generator: using string.len funtion to get struct(map,list,set) size
THRIFT-2887 Respect --with-openssl when building C++ support.
CMake: Add CMake support for Thrift libraries

Currently the following libraries are supported:
- C++
- C_Glib
- Java (using Ant wrapper)

The compilers CMake file is adjusted to work with the new global CMakeLists.txt file.

Signed-off-by: Roger Meier <r.meier@siemens.com>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Also-by: Sergei Nikulov <sergey.nikulov@gmail.com>
Add CMake builds to travis
THRIFT-2884 Map does not serialize correctly for JSON protocol in Go library
Reverted commit 0a378709ab8b3b0de4bafde60a803da24096e8bd
See JIRA for details
THRIFT-2890 binary data may lose bytes with JSON transport under specific circumstances
Client: Delphi
Patch: Jens Geyer

This closes #319

This patch consists of a ported version of the base64 encoding/decoding used in C#. It handles the above case correctly, decodes data more efficiently in-place, and removes the dependency to Indy (IdCoderMIME).
THRIFT-2891 binary data may cause a failure with JSON transport under specific circumstances
Client: Go
Patch: Jens Geyer
THRIFT-2890 binary data may lose bytes with JSON transport under specific circumstances
Client: Delphi
Patch: Jens Geyer

minor fix regarding two warnings introduced with this patch