Combined f1,f4,l1 adc code

This builds on the pull in https://github.com/libopencm3/libopencm3/pull/231 and adds the bulk of the convenience function unification.  This is mostly copy/paste sections of duplication from the f1/f4 code, along with l1 code from my own branch.

Despite the size of the changes, there's very little _new_ code here.  There is improved and generalised functions for setting sequences, and for abstracting out maximum channel length for analog watchdogs and regular sequences.

There's still room for deduplication, the l1 and f4 (and f37 and f2 according to the datahseets) have even more in common, but not with the f1, so I'd like to leave that for now.

@bgamari and @cyhuang: Does this pull/branch work for your l1 boards and tests?