Add EXTI support

Revamp usrsw to use new exti code.
Add user switch callback function.
stm: Add option to pyb_usb_dev_init() to use USB HID interface.

With this option selected, only HID on its own works, not VCP+HID.
py: Fix mpn_sub, was increasing wrong source pointer.

Also change int -> machine_int_t where appropriate.
Fix floating point printing of negative numbers in the range (0, -1.0)
Print an error if a non-valid BOARD is specified.
Update LED configuration
Merge pull request #323 from dhylands/fix-float-print

Fix floating point printing of negative numbers in the range (0, -1.0)
Merge pull request #318 from dhylands/exti

Add EXTI support
Merge pull request #324 from dhylands/board-check

Print an error if an invalid BOARD is specified
Merge pull request #325 from dhylands/led

Update LED configuration
stm: Open header file in text mode (in make-pins).
py: Start to implement shl/shr for mpz.  Fix return void.
py: Remove name of var arg from macros with var args.
stm: Reinstate code to handle CC3000 EXTI (commented out for now).
py: Take out bitfield entries from their own structure.

Don't need to wrap bitfields in their own struct.  Compiler does the
correct thing without it.
py: Reduce size of mp_obj_fun_native_t struct by packing ints.
py: Remove more var arg names fro macros with var args.
GC: Fix printf formats for debugging; add gc_dump_alloc_table.
Remove param from python API of ext_register

Minor cleanup.
Merge pull request #329 from dhylands/exti-cleanup

Remove param from python API of ext_register