Initial checkin.
Fix bytes type setter to work with byte sequences with embedded NULLs.

Patch from Alkis Evlogimenos <alkis@evlogimenos.com>.
Allow trailing slashes in --proto_path mappings.

Patch by Kevin Ko <kevin.s.ko@gmail.com>.
Fix Python service CallMethod() implementation.

Patch from Johan Euphrosine <proppy@aminche.com>
misc. stuff:
- Improved readmes.
- Fixed incorrect definition of kint32min.
- Fixed absolute output paths on Windows.
- Added info to Java POM that will be required when we upload the
  package to a Maven repo.
Sync code with Google-internal branch.  Changes:

Protoc (parser)
- Improved error message when an enum value's name conflicts with another
  symbol defined in the enum type's scope, e.g. if two enum types declared
  in the same scope have values with the same name.  This is disallowed for
  compatibility with C++, but this wasn't clear from the error.
C++
- Restored the set_foo(const char*) accessor for "bytes" type because some
  code inside Google depends on it.  However, set_foo(const char*, int) is
  still there (and actually is changed to take const void*).
- Fixed TokenizerTest when compiling with -DNDEBUG on Linux.
- Other irrelevant tweaks.
Java
- Fixed UnknownFieldSet's parsing of varints larger than 32 bits.
- Fixed TextFormat's parsing of "inf" and "nan".
- Fixed TextFormat's parsing of comments.
Python
- Fixed text_format_test on Windows where floating-point exponents sometimes
  contain extra zeros.
Fix static initialization ordering bug that caused crashes at startup when
compiling on Mac with static linking.
Applied Ulrich Kunitz's patches to slightly optimize Python serialization code.
Apply Leandro Lucarella <llucax@gmail.com>'s patches for VIM highlighting
and not setting execute bit on protoc outputs.
Heuristically detect sub-messages when printing unknown fields.

Patch mostly written by Dilip Joseph <dilip.antony.joseph@gmail.com>.
Integrate recent changes from google3.

protoc
- New flags --encode and --decode can be used to convert between protobuf text
  format and binary format from the command-line.
- New flag --descriptor_set_out can be used to write FileDescriptorProtos for
  all parsed files directly into a single output file.  This is particularly
  useful if you wish to parse .proto files from programs written in languages
  other than C++: just run protoc as a background process and have it output
  a FileDescriptorList, then parse that natively.

C++
- Reflection objects are now per-class rather than per-instance.  To make this
  possible, the Reflection interface had to be changed such that all methods
  take the Message instance as a parameter.  This change improves performance
  significantly in memory-bandwidth-limited use cases, since it makes the
  message objects smaller.  Note that source-incompatible interface changes
  like this will not be made again after the library leaves beta.

Python
- MergeFrom(message) and CopyFrom(message) are now implemented.
- SerializeToString() raises an exception if the message is missing required
  fields.
- Code organization improvements.
- Fixed doc comments for RpcController and RpcChannel, which had somehow been
  swapped.
Add missing file.
Update CHANGES.txt for v2.0.1.  Also update beta warning in README.txt.
Add missing module to setup.py.
More prep for 2.0.1:
* Fix version number test so that it accepts "2.0.1rc1".
* Add missing type_checkers.py to Makefile.am.
2.0.1 release.
Add code suggested by Michal Januszewski <michalj@gmail.com> to ensure that
Python tests run correctly even when a previous version of the library is
already installed.  I was unable to reproduce his problem on my machine but
the fix seems harmless enough.
Add @Override annotation to generated Java code where appropriate.

Patch from Brian Atkinson <nairb774@gmail.com>.
Work around absence of hash_map.

Also, update version numbers to 2.0.2-SNAPSHOT.
Explicitly identify superclass in initializer lists for generated message
classes.  This avoids a warning when using GCC's -pedantic option.