AVRO-1237. C: Verify union discriminant when reading Avro data files.

Test case submitted by Michael Cooper.  Michael's original fix was to
perform a bounds check in avro_value_set_branch, but I've opted for a
solution in avro_value_read.  This has two benefits: the check is only
performed when reading a discriminant value from an unsafe source, and
it doesn't impose an extra burden on anyone writing their own custom
value implementations.


git-svn-id: https://svn.apache.org/repos/asf/avro/trunk@1551941 13f79535-47bb-0310-9956-ffa450edef68