Updated teensy to build with latest

Refactored some stmhal files which are shared with teensy.

Many of the files from stmhal were usable by introducing the notion of a HAL_H header file.

For stmhal, mpconfigport.h sets the following:
```C
#define HAL_H           <stm32f4xx_hal.h>
#define PIN_DEFS_PORT_H "pin_defs_stmhal.h"
```

and various stmhal .c files were changed to #include HAL_H

For the teensy, HAL_H maps to 
```C
#define HAL_H           "teensy_hal.h"
#define PIN_DEFS_PORT_H "pin_defs_teensy.h"
```

I think that I could get rid of the PIN_DEFS_PORT_H by using #include <pin_defs.h> and have stmhal and teensy both provide a single pin_defs.h

I'm putting this PR forward as a proposal to see if the changes in stmhal are acceptable. Otherwise, I'll need to basically copy the following files from stmhal and make a single line change:

gccollect.c
pin.c
pin_named_pins.c
pybstdio.h
pyexec.c
readline.c

Did this come from the ST Cube HAL library?  If so, we may need to ack it.