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.
[stm32-ocm3] remove conflicting and confusing linker options

There's no need to have a pile of linkerscripts in contiki when we're using
the libopencm3 support libraries which handle all of that for us
[stm32-ocm3] Remove unnecessary customization of makerules

Less customizations, less places to track down problems
[stm32-ocm3] Update documentation for clock.c
[stm32-ocm3] Include extra debug information.
[stm32-ocm3] Remove dead proto rtimer code.

We're going to replace it with something new. Something that actually
does something and works :)
Don't rely on symbols that aren't being autogenerated

Properly follow the cc2538 examples
Support Cortex M0 and M4 via ARCH_FLAGS

Stop foolishly overriding ARCH_FLAGS, and provide a warning text
for people who didn't set it.
[stm32-ocm3] much less broken clock_delay_usec implementation

Previous version was stupid and could lockup.  Newer version doesn't lockup, but is probably vulnerable to doing a full loop in some edge cases.