Assert on record should only happen when writing
Apply enabled/disabled vertex attribs too
Remove hackish tracking of VAO chunks, mark as dirty resource instead

* The VAO will then have initial contents grabbed and applied
Mark VAOs as written when modified

* This means even non-dirty VAOs, if modified during cap frame, will have
  initial states applied properly on replay