Introduce @FieldMap.

The existing version was very broken. This standardizes behavior under a new annotation which defines how it applies to the request body.
Merge pull request #395 from square/jw/field-map

Introduce @FieldMap.