trap/console: centralize UART use under console.rs
This commit refactors the UART reading code so that all UART
interactions go through the MmioSerialPort in console.rs. A previous
commit had the UART interrupt handler reading directly from the UART
because some sort of issue prevents calling CONSOLE.lock() outside of
the console crate. However, it's fine to call this from functions
inside the console crate, so this commit implements a console_read()
function there which the trap vector can then call.