examples: HW configs: explicitly define hardware uart object (hwuart).

Some examples require hardware UART with interrupt support, etc., so make
it obvious.
examples/uart_echo_irq.cpp: Update for PTL namespace and HW config.
circular.hpp: Mark few methods volatile for interrupt-safe operation.
buffered_uart.hpp: Buffered interrupt-driven UART.
examples: Buffered UART demo.
docs: Add data model description (including advanced topics).