OMXCodec: prevent codec/quirks mismatch

Change-Id: I6e97f5fb5ec1fbb098c954c41319221ddb86b08b
 Fix a couple of nasty heap corruption bugs.

- When replacing the buffer pointer with another one, the allocated
  length wasn't updated. As the TI encoder relies of those being matched
up (it e.g. does a memset(pBuffer, 0, nAllocLen) at certain places), this
could lead to random memory being overwritten (or to a segfault when
reaching the end of the mapping)
- When replacing the buffer, the old buffer wasn't saved and restored
  before calling freeBuffer. This led to a different address passed to
free() than was returned by malloc(), could lead to all kinds of weird,
undefined behaviour.

Change-Id: I225db23eba2c015ecf40f13d5afb168beb129539
add support omap3 dec/enc (from ics)

Conflicts:
	media/libstagefright/OMXCodec.cpp
fix video play/rec

Conflicts:
	include/media/stagefright/OMXCodec.h
add more quirks

Conflicts:
	media/libstagefright/OMXCodec.cpp