Fix building as c89
Improve makeformats.py

- Better formatting
- No extra fields
- Static assert
Start porting over old upstream changes

For some reason the fork I based off used an older version.

This is not complete as much of it was never implemented
in xchat upstream only irssi.