THRIFT-2067 C++: all generated objects provide ostream operator<<
THRIFT-1266 generated C code for iterating over nested maps is wrong

Patch: Simon South
THRIFT-2690
c_glib: Incorrect behaviour when serializing a map with typedef'd keys

Patch: Simon South
THRIFT-2679 golang generation fails for service names less than 5 characters
Client: Go
Patch: Dustin Spicuzza & Jens Geyer
THRIFT-2513 clean up enum value assignment
Patch: Dave Watson

This closes #88

Summary:
Clean up how enum values are handled if an integer value is not
explicitly specified in the thrift file.

For example, the following used to be a compile error, but
works now:

  enum MyEnum {
	SOMEVALUE
  }
  struct MyStruct {
	1: MyEnum e = SOMEVALUE
  }

This change also cleans up some of the error handling with out-of-range
values.  Previously thrift simply issued a warning for enum values that
didn't fit in an i32, but serialized them as i32 anyway.  Now
out-of-range enum values result in a compile failure.

Test Plan:
Included a new unit test to verify the assignment of enum values.  I
also verified that g++ makes the same enum value assignments when
compiling these enums as C++ code.
updated ignores
FIX: wrong include path
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
THRIFT-2513 clean up enum value assignment
Client: Compiler (General)
Patch: Konrad Grochowski

Fixes the failing test with pure_enums. For details, see JIRA ticket.