Adding device driver semaphore to SPI and TWI driver support.

1. New lock/unlock function with semaphore (counter).
2. Refactor begin/end return from bool to void. Wait for semaphore instead of
error return.
3. Ripple effect on device drivers.
Changing USI/TWI device driver semaphore handling.