renamed 'struct <device>_interface' -> 'I<device>'.

o Adding doxygen documentation of interfaces.
o Documenting Uart "hooks" for irqs.
o API change on cpu: busywait_ms -> busywait_us.
	(busywaiting ms is a bad design and will not be incentivized)
Merge branch 'interfaces'
UART reimplemented in template form.
o Added uarts generation.
o Added pins for uarts 1, 2, 3, 4, 5, 6, 7.
o Added uart set_conf and get_conf.
o Removed uart0.[ch]; Are now tempalted.
o Removed freq parameter. cpu0 implementation is now required.
o Now prints some values.