Add function to validate metadata blob in memory.
Move section structs into their respective header files.
Padding generation functions now take a struct pointer as a parameter.

All section generation functions should use their appropriate struct types.
File signature serializers now also take pointers.
Make the fill functions static.

They do not need to be public API.
Gen functions now return error and set ptr and len in parameters.