Make adaption to different STM32 boards easier

Hello,

as my comment on the sourceforge blackmagic mailing list went unnoticed for two weeks, here a pull request as base for discussion. Again my target is to make porting of blackmagic to different(STM32) boards easier with as few code duplication as possible. In fact, I have blackmagic now running on
- the F103 of discovery boards
- the F407 on the F4 discovery board
- two other local STM boards
To get access to the JTAG chains of the F103 on the discovery to reprogramm as black magic debug probe, find some hints on
http://embdev.net/articles/STM_Discovery_as_Black_Magic_Probe
For the USPS_F407, find eagle schematic on
https://github.com/UweBonnes/wiki_fuer_alex/tree/master/layout

There are some patches of general interest in the pull request, like option byte handling for F3, use of the STM32 CRC unit etc. I implemented when need for that feature was seen.

Please tell how to proceed
- Do you need the patches of general interest as separate pull request? 
- Any chance for inclusion? What needs to be done for that?

Thanks