chore: update pin, exti, delay
fix: fifo has to be volatile
feat: implement usb devicd cdc descriptors, init, setup
feat: move all sending instructions to generic send functions
fix: make sure to error if endpoint id not found in interrupt
This generally shouldn't happen,
but it needs to be ensured that the
memory at incorrect place won't be read
or written to!
Otherwise there could be undefined behavior!
This would possibly write to the fifos,
meaning the data the usb sends could be
different than what the application intended!
feat: implement most of enumeration
feat: receive setup packets
feat: add registers, pin, exti, usb_device skeleton