programmer/armv7: move peripherals into their own files
programmer/arm: probe for optional peripherals
programmer/register: add field introspection
programmer/register: rename #inspect to avoid recursion

For some reason printing an exception will lead to a (recursive) call to
#inspect.  To avoid a recursive loop, and to improve logging efficiency,
we remove #inspect to #inspect_fields and call it only explicitly.
programmer: add breakpoint support