Remove defaults from message type fields

When you have a Message(A) with field of other Message(B) which contains a required field, you get a runtime error at some point. More precisely, when A is first loaded by class loader, while the `private static B DEFAULT_* = getDefaultInstance(B.class)` field is initialized, `B.build()` is trying to create new B instance whose all fields are null. At that point, `checkRequiredFields()` in `B.build()` throws an exception complaining all the required fields are not set.

Soon I realized that all the default `private static ~ DEFAULT_ ...` fields for message types (except for enum and repeated) don't have any use since message type fields cannot have any defaults from the beginning.
It seemed I should also remove the `Message.getDefaultInstance()` method itself since it could always lead to runtime exception for same reason, at anytime anywhere.

p.s. If you're going to merge, can you merge with this pull request directly? I'll do any extra work needs to be done. Thanks!