LTDC initial work, USB multiple package trx (proof of concept), sync (added try_lock)

I don't know how to split stuff in this pull.. 

SYNC
 - Should be ready to accept (mutex_try_lock()), maybe change return type


LTDC
 - Initial work
 - Some definitions belong in different header files
 - All the helper functions and names are open for discussion


USB
 - Fix for <16 word fifo buffer definition
 - Definition for packet count mask (OTG_FS_DIEPSIZ_PKTMSK)
 - Proof of concept for multi packet transmission
    - Would need some changes in usb to work, so bad :(
    - Would it be possible to add a private data void-pointer or something to each function and the driver definition?
    - For some reason max 7 packets à 64 bytes can be transmitted
    - I still don't get the meaning of INEPTXSA desctription in ref. manual RM0090,Rev.8
       - "The address must be aligned with a 32-bit memory location"
       - This comment sounds like it's an address in bytes but in every library I saw the address is set in words.
we generally stick to plain c, not gnu extensions where possible.  Just use decimal or hex for this, not binary please.