Elaborate GPIO class hierarchy - introduce PortPin.

IPin is completely abstracted pin without constrains of belonging to
anything. PinPort is a pin which explicitly belongs to a port and
has specific bit position in it.
Make width part of IPort and add more methods to it.
IPin is the most basic notion, put it at the top.
Make _REG*() macros op-precedence safe.
Remove dup inline keyword.
Use _REG8() accessors.
Add draft implementation of ParBusAligned:

Parallel bus which is aligned to properly ordered subrange of port pins.