ANDROID: Use custom_rules.xml instead of build.xml

The build.xml was getting ignored, so we need to actually override rules
GUI: Disable platform selection
ANDROID: Update the asset archive code to use AAssets
Merge pull request #829 from klusark/assets

ANDROID: Update the asset archive code to use AAssets
Merge pull request #827 from klusark/gui

Remove some ScummVM stuff from the GUI
ANDROID: Fix a race condition

setSurface is done in a different thread than the one that starts
the scummvm main. The main thread would then wait until the setSurface
thread notifies. The setSurface thread would notify before it actually
calls setSurface, meaning if the thread is preemted before calling
setSurface, initSurface will assert, causing the app to crash.
Merge pull request #828 from Botje/framebuffer-stencil

GRAPHICS: Also add a stencil attachment to framebuffers
EMI: Use parent sort order for attached actors

When drawing attached actors the engine uses the parent's sort order
plus one. This offset can move the attached actor behind a background
plane, for instance the chess board in the Lucre docks or Guybrush when
riding the manatee.
Merge pull request #831 from inguin/emi-attached-sort-order

EMI: Use parent sort order for attached actors
Merge pull request #818 from inguin/emi-new-game

EMI: Fix crash when restarting the game
GRIM: Fix broken overriding functions play and loadFile in NullPlayer
ANDROID: Remove unused htc_fail and shake_offset fields
ANDROID: Factor event pushing into pushEvent
EMI: Handling of invalid bone names

Two animations (guy_puton_cap, guy_holdstickystuff) contain bone names
which which don't match any joints. To avoid that the holding actor is
drawn with a wrong orientation, ingore the unknown bone names when
running the animations.

Skeleton::getJointNamed() will now return null for unknown names.
The original behaviour for Actor::getWorldPos and
Actor::getRotationQuat is kept.

This patch fixes the problem, that Guybrush is "lying down" once he
holds the bottle of glue.
GRIM: Don't bother checking if the value returned from new is nulll

It can never be null and will throw an exception if it can't allocate the
memory
EMI/GRIM: Fix rotation of attached actors

Use matrix multiplications to fix the rotation for attached actors:
- calculate the final transformation matrix recursively for attached
  actors (instead of using getWorldPos and getWorldRot)
- use a different order for building the quaternions out of the Euler
  angles
- changed handling of camera position (just apply the rotation of the
  camera, the (inverted) position of the camera and the position of the
  actor
- no functional changes for GRIM
- no changes for drawing in overworld

Code simplification for GRIM:
- no need to use _currentPos in calculations for GRIM since it is
always (0, 0, 0)

This fixes:
- the rotation of any items Guybrush is holding in his hands
- the handling of the pole when using the raft in the swamps
- getting the bananas with the banana picker
EMI: Fix position of attached actor

When attaching an actor to another one, set its local position
so that its final position (position of the parent actor + the
local position) remains the same as the final position before
it was attached.
BUILD: Conditionally include shaders
MYST3: Introduce shader-based renderer
MYST3: Move OpenGLTexture into separate file