Making a function static means "this function is compilation-unit-locale and
cannot be used (linked to) by others".
Putting a function prototype p into a header file h means every other module m
that includes h can call p.
Putting a static function prototype into a header file means "you can call this,
but you can not call this" which makes no sense. All this prototypes all only
needed compilation unit internally (and should only be used so). This commit
moves them where they belong. And subsequent commits will clean them up
because most are not necesarry in the .c file.