MUSheader structure must be packed: instead of using memcpy()
and sizeof() along with compiler specific attributes for it,
assign one member at a time, and read members with in-place
convertion to cpu-endian from little-endian. remove the dummy
member from the header strcuture (not needed anymore.)  move
the allocation of mus context to after the header is verified.
make sure that the source is of correct length. fire proper
WM_ERROR() calls upon errors. cleanup and return null upon
unrecognized events.