Revert "Revert "Merge pull request #120 from Jeff-Ciesielski/stm32_cl""

This reverts commit ab8fe95864f6c5c7f61dbbc9fd23fbc436e0a83c.

We can sort out licensing later.  Libopencm3 is open to adding a linking
exception, which would seem to satisfy the arguments against this.
Add some cpu support for libopencm3 support cpus

Not just fixed to a subfamily of F1
[stm32l] linker script was duplicating sections

Bad includes are bad.
[stm32-ocm3] Improve documentation and defaults
[stm32-ocm3] remove redundant linker scripts

Don't need these, we can refer directly to linker scripts in the OCM3
directory.
[stm32-ocm3] reduce warnings in valid cases

You should normally provide a LINKERFILE, or LINKERSCRIPT, but if you
don't provide one, and do provde SUBTARGET, we'll do our best to find
the right one.
[stm32-ocm3] Expand clock module implementation

In certain cases, delaying may be off by up to an entire uSec, when
the systick counter is about to wrap.  The implementation here is not the
most precise, with perfectly counted assembly loops, but it's clear and
functional.  You shouldn't be using these low level routines for anything
critical anyway.
[stm32-ocm3] Make the libopencm3 base for stm32 explicit

Rename the directory to be more explicit that this should work for all
libopencm3 targets, though we're holding ourselves to just stm32 for now.
[stm32-ocm3] Add portable debug uart driver code

The platform still has to provide a function for configuring the gpios
and setting _which_ uart to use, but all the commong ringbuffering and baud
rate setting is all done in common code.