ALL: Remove optimization unstable code on checking for null after new.

These issues were identified by the STACK tool.

By default, the C++ new operator will throw an exception on allocation
failure, rather than returning a null pointer.

The result is that testing the returned pointer for null is redundant
and _may_ be removed by the compiler. This is thus optimization
unstable and may result in incorrect behaviour at runtime.

However, we do not use exceptions as they are not supported by all
compilers and may be disabled.

To make this stable without removing the null check, you could qualify
the new operator call with std::nothrow to indicate that this should
return a null, rather than throwing an exception.

However, using (std::nothrow) was not desirable due to the Symbian
toolchain lacking a <new> header.
A global solution to this was also not easy by redefining "new" as "new
(std::nothrow)" due to custom constructors in NDS toolchain and various
common classes.

Also, this would then need explicit checks for OOM adding to all new
usages as per C malloc which is untidy.

For now to remove this optimisation unstable code is best as it is
likely to not be present anyway, and OOM will cause a system library
exception instead, even without exceptions enabled in the application
code.
Merge pull request #417 from digitall/STACK_fixes

ALL: Fix optimization unstable code on checking for null after new.
VIDEO: Add MJPEG support
VIDEO: Fix a typo in the include guard
KYRA: Rewrite the VQA decoder, using the VideoDecoder classes

There isn't really a lot of benefit to this, but I think it's nicer
if all our video decoders at least try to use the same infrastructure.
KYRA: Let the VQA decoder draw directly to the backend

As an alternative to using the Screen class's functions, we can let
the VQA decoder draw directly to the backend. This won't work if the
game uses "hi-res mode", but I don't think that's ever the case for
Malcolm's Revenge. I believe the KyraEngine_MR::playVQA() function
ensures that the screen is properly updated after the movie has
finished.

This almost limits the VQA rewrite to vqa.cpp and vqa.h. Whether it's
better this way than changing the Screen functions to take a 'pitch'
parameter...? I don't know. But it's an alternative.
KYRA: Restructure the VQA decoder, as suggested by clone2727

Untangled the audio and video track from each other, and the parsing
of the stream from the decoding of its data. Also fixed a memory leak
as it turns out deleting a Surface doesn't free its data. You have to
call free() in it.

I have only checked the intro, not every cutscene, but that seems to
work fine at least.
KYRA: Make pointers to VQAHeader const

This is just to enforce the idea that VQADecoder owns the VQAHeader
and that the audio/video tracks are only allowed to look at it, not
change it.