Implementation of the SAM4L TWIMS peripheral.
The implementation, especially of repeated starts, is quite sensitive to the
ordering of operations (e.g. setup DMA, then set command register, then next
command register, then enable, then start the DMA transfer). The placement
of writes to interrupt enable/disable registers is also significant, but not
refactored in such a way that's very logical right now.
The point is that until this changes, and this notice is taken away: IF YOU
CHANGE THIS DRIVER, TEST RIGOROUSLY!!!