portOutputRegister and portInputRegister are useless

Paul good point,

from a compatibility point of view: we should ensure that these macros returns an uint8_t *, so the libraries made for AVR could work without (or with less) effort.

from an API point of view: portOutputRegister returns a pointer to the Output Register (as the macro name suggests) and I expect this pointer to be of same size of the register.

Maybe we should add something like:

typedef volatile uint32_t *OutputRegister;

together with portOutputRegister?