Allow the use of field numbers rather than names in JSON serialization

@swankjesse @JakeWharton 
Should this return a new instance and have the wrapping class be immutable? That's how Gson's built in type adapters work when you call `.nullSafe()` on them.