New config option MICROPY_FORCE_32BIT (defaulted to 0)

Makes it easier for 64-bit unix hosts to build 32-bit unix
binaries (for testing)
Auto-generate the stmhal/pybcdc_inf header file from static files

The USB VID&PID are automatically extracted from usbd_desc_cdc_msc.c
and inserted into pybcdc_inf.template, ensuring that the same USB
IDs get used everywhere
run-tests can now skip certain tests when run under Travis CI

See the `skip_travis_tests` variable. Fixes #495
(also tidied up usage of os.path.basename() function)
stmhal: Fix C bindings of I2C.read/write.
Merge pull request #499 from lurch/skip-travis-tests

run-tests can now skip certain tests when run under Travis CI
Merge pull request #498 from lurch/create-headers-from-files

Auto-generate the stmhal/pybcdc_inf header file from static files
tools: Fix up pybcdc.inf generation: new lines and hex digits.

Using Python's file open in 'r' mode opens it for text reading, which
converts all new lines to \n.  Could use 'rb' binary mode, but then
don't have access to the string Template replacement functions.  Thus,
force the output to have '\\r\\n' ending.

Also fix regex to match hex digits.
Merge pull request #497 from lurch/build-32bit

New config option MICROPY_FORCE_32BIT (defaulted to 0)
stmhal: Fix USB CDC buffer overrun error.

Need to wait for the low-level USB driver to send the data over the USB
in-endpoint before the buffer can be used again.  This patch adds a
check for this.
stmhal: Add pyb.have_cdc function to check if USB CDC device is enabled.