stmhal: For spi_init, add argument to select if NSS pin is enabled.

Most of the time you don't use the NSS pin of the SPI bus, and so it
shouldn't be enabled by default (this gave some bugs in the past).
stmhal: Add network and usocket module.

As per issue #876, the network module is used to configure NICs
(hardware modules) and configure routing.  The usocket module is
supposed to implement the normal Python socket module and selects the
underlying NIC using routing logic.

Right now the routing logic is brain dead: first-initialised,
first-used.  And the routing table is just a list of registered NICs.

cc3k and wiznet5k work, but not at the same time due to C name clashes
(to be fixed).

Note that the usocket module has alias socket, so that one can import
socket and it works as normal.  But you can also override socket with
your own module, using usocket at the backend.
drivers, wiznet5k: Wrap exported functions in a macro for renaming.

3rd party drivers should not export generic names like "close".
drivers, cc3000: Wrap exported functions in a macro for renaming.
stmhal: Fix wiznet5k init of SPI bus.
stmhal: Enable patch_program in cc3k driver, with key.
tools: Add network build to auto-build script.
Proposed fix for USB Mass Storage.
unix: Do a proper clean-up on sys.exit/SystemExit.

Addresses issue #859.
Enable device keyword option when running pyboard.py --tests and run-tests --pyboard
stmhal: Update help text.

Remove reference to pyb.gc; add reference to pyb.millis.

There are lots of functions not listed when you run help(), but it would
be too much to list them all, so we list only some basic, useful ones.

Addresses issue #846.
stmhal: Set is_enabled=false when creating UART object; fix doc typo.
stmhal: Add basic CAN bus support.
tests: Add simple CAN test.
drivers: Add NRF24L01 driver (written in pure Python).

Comes with test script.  Copy both files to pyboard and run
"import nrf24l01test".
py: Convert [u]int to mp_[u]int_t where appropriate.

Addressing issue #50.
py: Use UINT_FMT instead of %d.
py: Change [u]int to mp_[u]int_t in qstr.[ch], and some other places.

This should pretty much resolve issue #50.
py: Fix unix-cpy to compile with uint->mp_uint_t changes.
Implement missing ARM emitter functions for viper