Improvements to STM32F1 I2C, CAN, RCC, and USB (f107)

This commit extends the following libraries:

I2C: 
-- Add support for direct access DMA
-- Add additional helper functions for interrupts and duty cycle calculation

CAN:
-- Add support for loopback and silent mode during initialization
-- Add helper function to check for available mailboxes

USB: 
-- Enhance handling of descriptor strings
-- Add functionality of 'chaining' handlers for standard request hooks

RCC:
-- Add support for 25Mhz external oscillator
-- Add support for PLL2 and PLL3