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.