Add header type constants

Take enumerated types from [MS-EMF] 2.1.1 RecordType enumeration.
Microsoft have this as an enum type, but I prefer to use the
preprocessor...
More error checking

Add more error checking: if the header is not EMR_HEADER (0x0001), then
this is inaccurate and could indicate file corruption. Also, if the
bytes field isn't the same as the filesize, this probably indicates
some sort of file corruption also.
Handle EMF descriptions
Add pixel format buffer fields.