* uses namespaces for nested messages and enums
* fixes namespaces for PHP dist
* fixes namespace for Descriptors, adds Cardinality and Kind
* fixes nested namespaces for reserved words and adds tests
* adds tests and generator fix for php class prefixes
* fixes escaping of protobuf packages, enum comments, misc others
* nice refactor of generated code
* adds class files for backwards compatibility
* simplifies code with templates
* adds compatibility files to makefile
* cleanup of generator and fixes nested namespace bug
* regenerates proto types
* remove internal BC classes
* adds deprecated warning, adds methods back
* simplifies if statement
* fixes dist files
* addresses review comments
* adds back TYPE_URL_PREFIX constant
* adds @deprecated to old nested class files
* skips tests which require a separate process when protobuf.so is enabled
* Adds tests for legacy nested classes that do not require separate processes to test
* uses legacy names for GPBUtil message check
* adds block for IDE @deprecated message
* Namespace for nested message/enum in c extension
* Remove unused code
* Reserve unknown fields in upb
1) For decoding, an unknownfields will be lazily created on message,
which contains bytes of unknown fields.
2) For encoding, if the unknownfields is present on message, all bytes
contained in it will be serialized.
* Register the function to encode unknown field at decode time.
* Remove upb_handlers_setaddunknown
* Use upb_sink_putunknown in decoder
* Remove upb_pb_encoder_encode_unknown
* Do not expose encode_unknown
* Implement reserve unknown field in php Implement.
* Make buffer private to CodedInputStream
descriptor.proto uses proto2 syntax, which is not ready for external
usage. However, some proto3 files import descriptor.proto and cannot be
used. In this PR, all references (We cheated by only removing
extensions, which is enough for now. User should avoid using messages
defined in descriptor.proto as field type.) to content in
descriptor.proto are removed from generated files. Those that import
descriptor.proto can be used like other proto files.