core: fix diff mismatch when RequiresNew field and list both change
core: fix diff mismatch when RequiresNew field and list both change

fixes #1752

Includes AccTest reproducing example from the issue as well as a bunch
of explanatory comments in the tests and impls.

ashinohara/terraform-provider-aws,terraform-providers/terraform-provider-aws,Ninir/terraform-provider-aws,Ninir/terraform-provider-aws,ClementCunin/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,nbaztec/terraform-provider-aws,terraform-providers/terraform-provider-aws,kjmkznr/terraform-provider-aws,Ninir/terraform-provider-aws,terraform-providers/terraform-provider-aws,ashinohara/terraform-provider-aws,Ninir/terraform-provider-aws,charles-at-geospock/terraform-provider-aws,nbaztec/terraform-provider-aws,charles-at-geospock/terraform-provider-aws,kjmkznr/terraform-provider-aws,terraform-providers/terraform-provider-aws,ClementCunin/terraform-provider-aws,charles-at-geospock/terraform-provider-aws,ClementCunin/terraform-provider-aws,nbaztec/terraform-provider-aws,kjmkznr/terraform-provider-aws