fixing usb and alignment issue
USB core updated for reentrance based on Christian Cier-Zniewski's branch
stm32 F2/F4 gpio_set_af() fix
Adding vendor class definition
stm32/f1/can: Add loopback/silent vars to init function.

Also: add helper function for mailbox checking
stm32/f1/dma: add clear_flag helper function
stm32/f1/i2c: add a whole bevy of additional helper functions
stm32/f1/vector: add ability to boot to DFU bootloader

note: Only works on CL devices
also: this could probably use a helper function
stm32/f1/rcc: add 25mhz in to 72mhz out clock tree setup function.

also: added support for previously undefined PLLs
stm32/f1/rtc: add PLL2/3 to switch statement to avoid compiler warning
examples: fix lisa-m-1 can example to use new can init function
stm32/f1/gpio: use |= instead of = when setting up registers
stm32/f1/can: Replace mistaken logical operators with bitwise operators.

also: remove unnecessary parenthesis
stm32/f1/i2c: remove unnecessary parenthesis
stm32/f1/can: Add function to detect if can system has an available mailbox
stm32/f1: Add user_reset_hook to reset_handler w/ jump_to_dfu preset

This allows for pragramatic jumping to the DFU bootloader on CL devices, or
could be used for things like CRC checking of the firmware before boot
stm32/i2c: Add DOXYGEN strings for i2c helper functions.

Also: Define i2c_dutycycle group in i2c header
Add CAN support for F2 and F4 series.
All stm32 series currently released share the same bxCAN hardware, so share can.c among all the families.
Release the correct fifo in can_receive()
Fix CAN standard ID mask to be 11 bits.