refactoring all structs to typedefs

still a big fan of typedefs so this drops lots of characters that I wouldn't have typed in the first place ;o)
The circular dependency in base.h is a bit tricky and it might be possible to make that a bit more beautiful but well. For now it compiles and the code lost about 1kB of size :+1: