helper/schema: fix DiffFieldReader map handling
helper/schema: fix DiffFieldReader map handling

An `InstanceDiff` will include `ResourceAttrDiff` entries for the
"length" / `#` field of maps. This makes sense, since for something like
`terraform plan` it's useful to see when counts are changing.

The `DiffFieldReader` was not taking these entries into account when
reading maps out, and was therefore incorrectly returning maps that
included an extra `'#'` field, which was causing all sorts of havoc
for providers (extra tags on AWS instances, broken google compute
instance launch, possibly others).

 * fixes #914 - extra tags on AWS instances
 * fixes #883 - general core issue sprouted from #757
 * removes the hack+TODO from #757

nbaztec/terraform-provider-aws,kjmkznr/terraform-provider-aws,Ninir/terraform-provider-aws,Ninir/terraform-provider-aws,kjmkznr/terraform-provider-aws,ashinohara/terraform-provider-aws,charles-at-geospock/terraform-provider-aws,ClementCunin/terraform-provider-aws,ashinohara/terraform-provider-aws,nbaztec/terraform-provider-aws,ClementCunin/terraform-provider-aws,nbaztec/terraform-provider-aws,charles-at-geospock/terraform-provider-aws,Ninir/terraform-provider-aws,charles-at-geospock/terraform-provider-aws,nbaztec/terraform-provider-aws,ashinohara/terraform-provider-aws,terraform-providers/terraform-provider-aws,terraform-providers/terraform-provider-aws,ashinohara/terraform-provider-aws,charles-at-geospock/terraform-provider-aws,ClementCunin/terraform-provider-aws,terraform-providers/terraform-provider-aws,kjmkznr/terraform-provider-aws,Ninir/terraform-provider-aws,terraform-providers/terraform-provider-aws,kjmkznr/terraform-provider-aws,ClementCunin/terraform-provider-aws