Fix buffer bugs affecting transform feedback.
Fix buffer bugs affecting transform feedback.

Running dEQP-GLES3.functional.transform_feedback would trigger a few
assertion failures because of some regressions that crept into our
code.

Among the regressions is assuming we can't map a buffer that has no
underlying storage object. This is valid since we sometimes allow
setData without creating a native storage.

Additionally we should free our existing data store on a new call
to SetData, to prevent old but "new" data revisions from complicating
our storage.

BUG=angle:679

Change-Id: Icd96a8a55a2b957d29382d8b8bbd7e8a7ab0cf65
Reviewed-on: https://chromium-review.googlesource.com/204342
Tested-by: Jamie Madill <7e492b4f1c8458024932de3ba475cbf015424c30@chromium.org>
Reviewed-by: Geoff Lang <b6fc25fe0362055230985c05cbfa8adb741ccc0f@chromium.org>

jgcaaprom/android_external_chromium_org_third_party_angle,mybios/angle,jgcaaprom/android_external_chromium_org_third_party_angle,ecoal95/angle,MIPS/external-chromium_org-third_party-angle,ecoal95/angle,android-ia/platform_external_chromium_org_third_party_angle,bsergean/angle,larsbergstrom/angle,MIPS/external-chromium_org-third_party-angle,crezefire/angle,xin3liang/platform_external_chromium_org_third_party_angle,ecoal95/angle,csa7mdm/angle,geekboxzone/lollipop_external_chromium_org_third_party_angle,mrobinson/rust-angle,bsergean/angle,crezefire/angle,ghostoy/angle,ghostoy/angle,MSOpenTech/angle,ecoal95/angle,ppy/angle,mybios/angle,mlfarrell/angle,ppy/angle,csa7mdm/angle,jgcaaprom/android_external_chromium_org_third_party_angle,mikolalysenko/angle,xin3liang/platform_external_chromium_org_third_party_angle,nandhanurrevanth/angle,nandhanurrevanth/angle,android-ia/platform_external_chromium_org_third_party_angle,crezefire/angle,bsergean/angle,mikolalysenko/angle,mikolalysenko/angle,vvuk/angle,csa7mdm/angle,MSOpenTech/angle,ppy/angle,domokit/waterfall,bsergean/angle,mikolalysenko/angle,android-ia/platform_external_chromium_org_third_party_angle,ppy/angle,android-ia/platform_external_chromium_org_third_party_angle,jgcaaprom/android_external_chromium_org_third_party_angle,xin3liang/platform_external_chromium_org_third_party_angle,mlfarrell/angle,mybios/angle,mybios/angle,larsbergstrom/angle,MIPS/external-chromium_org-third_party-angle,nandhanurrevanth/angle,xin3liang/platform_external_chromium_org_third_party_angle,ghostoy/angle,mlfarrell/angle,larsbergstrom/angle,vvuk/angle,vvuk/angle,MIPS/external-chromium_org-third_party-angle,mrobinson/rust-angle,ghostoy/angle,domokit/waterfall,geekboxzone/lollipop_external_chromium_org_third_party_angle,vvuk/angle,csa7mdm/angle,mrobinson/rust-angle,nandhanurrevanth/angle,geekboxzone/lollipop_external_chromium_org_third_party_angle,mlfarrell/angle,crezefire/angle,geekboxzone/lollipop_external_chromium_org_third_party_angle,ecoal95/angle,mrobinson/rust-angle,larsbergstrom/angle,MSOpenTech/angle,mrobinson/rust-angle,MSOpenTech/angle