Add -Wpointer-arith flag to prevent problems with pointer arithmetic on void*
Fix errors after enabling -Wpointer-arith
py: Allow to override port config file and thus have >1 configs per port.

Use it like:

make CFLAGS_EXTRA='-DMP_CONFIGFILE="<mpconfigport_my.h>"'
moductypes: Make sure we can apply .sizeof() to all aggregate types.

Before, sizeof() could be applied to a structure field only if that field
was itself a structure. Now it can be applied to PTR and ARRAY fields too.
It's not possible to apply it to scalar fields though, because as soon as
scalar field (int or float) is dereferenced, its value is converted into
Python int/float value, and all original type info is lost. Moreover, we
allow sizeof of type definitions too, and there int is used to represent
(scalar) types. So, we have ambiguity what int may be - either dereferenced
scalar structure field, or encoded scalar type. So, rather throw an error
if user tries to apply sizeof() to int.
moductypes: When dereferencing a field which is array of uint8, use bytearray.

Because bytearrays are much friendlier to work with, e.g. they can be printed
easily.
moductypes: Add test for accessing UINT8 array.
moductypes: Make .sizeof() work with bytearrays.