lpc43xx changes from HackRF

About a year ago @mossmann forked `libopencm3` for use in the HackRF project. Due to time constraints, a majority of this work never made its way upstream. Moreover, the HackRF tree received little of the new work from upstream. This is my attempt at merging the upstream libopencm3 branch into the HackRF tree.

While I have a commit removing the examples from the tree, the correct approach here will probably be to run this through `git-filter-branch`, ensuring that they are never added.

A majority of the headers here are generated by `scripts/data/lpc43xx/gen.py` from CSV files in the same directory. It seems reasonable to include these (and perhaps even move to such a scheme for generating all register definitions) but it would be nice to hear what others think.

As the title suggests, this is largely just a request for comments as I'm still in the process of getting the HackRF to enumerate over USB with this set. The history is rather verbose and certainly some of the commits could be squashed together (e.g. those adding CSV files, if we want to keep these at all).