Fix EnumTest (part 2)
Patch: Konrad Grochowski, as part of his pull request 209
THRIFT-2694 Minor glitches in Delphi cross-test code
Client: Delphi
Patch: Jens Geyer
THRIFT-2691 - C++ tutorial: printfs removed, generated operator<< used
THRIFT-2696 Unable to stop socket server while there are idle clients
Client: Delphi
Patch: Severian Duchenko & Jens Geyer

The patch contains some additional refactoring, e.g. I consolidated the excessively overloaded CTORs a bit.
THRIFT-1040 Can't end typedef lines with a semicolon
Client: Compiler (General)
Patch: Konrad Grochowski
THRIFT-2513 clean up enum value assignment
Client: Compiler (General)
Patch: Jens Geyer
THRIFT-2702 empty enums lead to invalid code
Client: Delphi
Patch: Jens Geyer
libgenerate extracted from thrift executable so compiler specific unit tests can be added
compiler: IndentKeeper extracted from t_generator

* tests added for IndentKeeper
* t_generator movd a little bit towards meeting SRP
* IndentKeeper can be reused by lower level generator
     (like MethodGenerator)
compiler: IndentGuard added

will simplify operating on indents
compiler: ScopeGuard added
compiler: C++ generator refactoring stared - operator<< generation made more OO