Fix various C++11 issues and strict aliasing violations.
MatroskaExtractor: Letting the error be correctly handled

Do not blow up when parsing the header fails (like, say, a
corrupt or zero-byte file) and let the error handling that's
already in place exit the extractor cleanly

Change-Id: I457574d4279efdd3a08e159e755b563d6d98fbc6
SampleTable: check integer overflow during table alloc

Bug: 15328708
Bug: 15342615
Bug: 15342751
Change-Id: I6bb110a1eba46506799c73be8ff9a4f71c7e7053
(cherry picked from commit edd4a76eb4747bd19ed122df46fa46b452c12a0d)
stagefright: Allow devices to use older widevine blobs

Devices may have widevine plugins built with an older MediaSource
interface.  Trying to use them fails because of the change in
interface in the object (it calls the destructor in the blob when
attempting to call setBuffers).

This commit restores the interface for ! QCOM_HARDWARE devices.

Fixes: JIRA-4944.

Change-Id: I4ce24a16f3eceab0c4def4b09850ed569eb392ab