py: Make mp_const_empty_bytes globally available.
stmhal: Overhaul UART class to use read/write, and improve it.

UART object now uses a stream-like interface: read, readall, readline,
readinto, readchar, write, writechar.

Timeouts are configured when the UART object is initialised, using
timeout and timeout_char keyword args.

The object includes optional read buffering, using interrupts.  You can set
the buffer size dynamically using read_buf_len keyword arg.  A size of 0
disables buffering.
stmhal: Change cc3k.recv to only make 1 call to underlying recv().

Also make cc3k.send and cc3k.recv independent functions (not wrapped by
stream write/read).  Also make wiznet5k.recv more memory efficient.

This might address issue #920.
Add pyb.hard_reset, and make sys.exit() or raise SystemExit do a soft reset.
stmhal: Don't return SystemExit value from parse_compile_execute.

There is no need, since we don't (currently) use the value.
Fixed TIM2_CH1 definition.

TIM2_CH1_ETR is really bundling 2 functions to the same pin:
TIM2_CH1 (where its used as a channel)
TIM2_ETR (where iss used as an external trigger).

I fixed most of these a while back, but it looks like I missed this one.
stmhal: Add MMA_INT/PB2 to available pins on PYBV10.

This allows you to register ExtInt on the MMA interrupt pin.
py: Remove unused and unneeded SystemError exception.

It's purpose is for internal errors that are not catastrophic (ie not as
bad as RuntimeError).  Since we don't use it, we don't need it.