stmhal: Ability to stat /flash and /sd.

Addresses issue #780.
stmhal: Update STM32Cube F4 HAL driver to V1.3.0.

This patch updates ST's HAL to the latest version, V1.3.0, dated 19 June
2014.  Files were copied verbatim from the ST package.  Only change was
to suppress compiler warning of unused variables in 4 places.

A lot of the changes from ST are cosmetic: comments and white space.
Some small code changes here and there, and addition of F411 header.

Main code change is how SysTick interrupt is set: it now has a
configuration variable to set the priority, so we no longer need to work
around this (originall in system_stm32f4xx.c).
Merge branch 'master' into iabdalkader-cc3k-update
py: Fix bug in mpn_shl (multi-prec int shift left).

Before this patch, eg, 1 << 75 (or any large multiple of 15) was setting
the MSB in the digits, which is outside the valid range of DIG_MASK.
Add support for selecting pin alternate functions from python.

Converts generted pins to use qstrs instead of string pointers.

This patch also adds the following functions:
pyb.Pin.names()
pyb.Pin.af_list()
pyb.Pin.gpio()

dir(pyb.Pin.board) and dir(pyb.Pin.cpu) also produce useful results.

pyb.Pin now takes kw args.

pyb.Pin.__str__ now prints more useful information about the pin
configuration.

I found the following functions in my boot.py to be useful:
```python
def pins():
    for pin_name in dir(pyb.Pin.board):
        pin = pyb.Pin(pin_name)
        print('{:10s} {:s}'.format(pin_name, str(pin)))

def af():
    for pin_name in dir(pyb.Pin.board):
        pin = pyb.Pin(pin_name)
        print('{:10s} {:s}'.format(pin_name, str(pin.af_list())))
```
py: Fix bug where GC finaliser table was not completely zeroed out.

This was a nasty bug to track down.  It only had consequences when the
heap size was just the right size to expose the rounding error in the
calculation of the finaliser table size.  And, a script had to allocate
a small (1 or 2 cell) object at the very end of the heap.  And, this
object must not have a finaliser.  And, the initial state of the heap
must have been all bits set to 1.  All these conspire on the pyboard,
but only if your run the script fresh (so unused memory is all 1's),
and if your script allocates a lot of small objects (eg 2-char strings
that are not interned).
Merge branch 'pin-af' of https://github.com/dhylands/micropython into dhylands-pin-af
stmhal: Comment out unused functions.
stmhal: Fix documentation; remove ability to specify af by str.
stmhal/teensy: Use _ instead of - in source file names.

Trying to move towards consistency, let's use _ exclusively in names of
source files (eg .c, .h, .csv).
tests, pyb: Update pin test.
Merge branch 'dhylands-pin-af'
Merge branch 'master' into iabdalkader-cc3k-update