Make test code runnable with C++11

Preprocessor token right after string literal without whitespace results
in parse failure in C++11.
Display element name in test error log
Make C++ string oneof field compatible with C++11

string oneof field was generated into "const ArenaStringPtr" field inside
"default_oneof_instance_" struct (of name "<class name>OneofInstance").

On the other hand, in C++11, const field of type with trivial default
constructor causes enclosing type's implicit default constructor to be deleted.

Since ArenaStringPtr has tirvial default constructor, this caused default
constructor of "default_oneof_instance_" struct to be deleted, making the
constructor call inside generated code invalid and fail to compile.
Update version number to v3.0.0-alpha-1
Update version number in descriptor.pb.h and plugin.pb.h. Protect death
tests with macro PROTOBUF_HAS_DEATH_TEST.
Add a missing Java dist file.
Delete some globals in ShutdownProtobufLibrary().
Update post_process_dist.sh to produce a separate package for each
language.
Replace is_enum with is_proto_enum because is_enum is not supported on some platforms.
Remove usage of features not supported in Java 1.6.
Fix thread local annotatoin and add back type traits is_convertable for MSVC
Update VC projects to include new source files.
Fix compile issues and test failures in VS2008.
Ignore artifacts from autogen.sh
Merge pull request #127 from tseaver/ignore-autogen-artifacts

Ignore artifacts from autogen.sh
Down-integrate from internal code base.
Fix the intermediate directory of vc project files.
Fix vsprojects/extract_includes.bat
Remove map_field.cc from lite-runtime.
Provide a Ruby extension.

This adds a Ruby extension in ruby/ that is based on the 'upb' library
(now included as a submodule), and adds support for Ruby code generation
to the protoc compiler.