dap: improved error handling, reintroduce some caching

- request sticky overruns
- dap_commit() queues DPCSW check for sticky errors
  or overruns, jtag_commit()s then checks for badness
- everything uses dap_commit() now
- reintroduce cached_ir, but cache only for the duration
  of a txn (avoids redundant ir writes within a txn,
  but is more conservative across multiple txns)
- introduce a timing hack to dap_mem_read/write() so they
  work correctly on zynq (TODO: make this adaptive)
- remove some dead code