Check-in nanoproto source code

@pherl 

Code copied from https://android.googlesource.com/platform/external/protobuf.git/+/4353bbc88f513a3c8863cc5b30e765dd5530faa1