Manually merged PR from Luis Vargas.
Manually merged PR from Luis Vargas.

This PR initiated the work on the class properties (including `isEnum`).
Because of a delay due to CLA processing, the followup which completes
the work on several class properties has already been landed, and hence
this CL essentially disappeared. For the same reason, the PR could not
simply be merged, because of merge conflicts. However, we still want
to have it on record where the initiative came from. Thanks Luis! ;)

Review URL: https://codereview.chromium.org/1446493002 .

google/reflectable.dart,google/reflectable.dart