usb: Only service TOKEN_IF interrupt if it is enabled
usb: Only service TOKEN_IF interrupt if it is enabled

Since the USB peripheral has many different types of interrupts but only
one interrupt-service routine (ISR), care must be taken to ensure that
code doesn't get executed for sections of the ISR where the interrupt bit
is disabled.

In this case, if TOKEN_IE is cleared (ignoring TOKEN_IF interrupts), but
the ISR is called because of a different interrupt (eg: a SOF_IF), the
TOKEN_IE must be checked to make sure that it is set before executing
the code having to do with the TOKEN_IF interrupt.

Add code to check TOKEN_IE (which is incorrectly named SFR_TRANSFER_IE,
and will be fixed in a later commit).

This is needed because the MSC device class will turn on and off TOKEN_IE
to synchronize the main thread with the ISR.

rollingstone/m-stack,rollingstone/m-stack