Adds --ignore_service nano proto compiler flag

Nano proto compiler normally throws an error if any service is
defined. If --ignore-services=true is set, no error is thrown and the
service is simply skipped.

Change-Id: Id82583555085cc55550d03a485d3f0189885240b
Merge "Adds --ignore_service nano proto compiler flag"
Support generation of Parcelable nano messages.

This CL adds the "parcelable_messages" option. When enabled, all
generated message classes will conform to the Android Parcelable
contract. This is achieved by introducing a new parent class for
generated classes which implements the required functionality.

Since the store_unknown_fields option also makes use of a superclass,
ExtendableMessageNano, we have two versions of the new Parcelable
superclass: one extending MessageNano, and one extending
ExtendableMessageNano. These classes are otherwise identical.

As these classes depend on Android framework jars, they are not
included in the host .jar build of the nanoproto library.

Finally, add a test suite for running tests of Android-specific
functionality, as this cannot be done on a desktop JVM.

Change-Id: Icc2a257f03317e947f7078dbb9857c3286857497
Merge "Support generation of Parcelable nano messages."
Fix NPE when clearing an extension in nano protos

If ExtendableMessageNano doesn't have any unknown fields, trying to
clear an extension by setting it to null would throw an NPE.

Change-Id: I6abcdfcc0193de44f97b21dd6cc2f40604938a1a
Merge "Fix NPE when clearing an extension in nano protos"
You CANNOT change the global WITH_DEXPREOPT

Bug: 14380196
Change-Id: I2b9e6db081558687afd5c20c7084824dfe1bb26e
Merge "You CANNOT change the global WITH_DEXPREOPT"