updates linux and osx build scripts and starts android build script

This updates the scripts for building linux and osx binaries of the Rig
editor.

This also adds an initial script for building a set of
PREBUILT_SHARED_LIBRARY modules for Android that can be used for
running Rig on an android device.

This also adds an android/project that contains an Android project that
can be used to build a rig-slave package.
asset: add _get_image_size() api for image based assets
diamond: avoid needing tex size on construct + add size prop
pointalism: avoid needing tex size to construct
shape: add placeholder shape mask asset property
engine-op: avoid redundant unserialize when applying ops locally
engine: avoid invalid deref in get_object_debug_name()
rig-pb: add api to avoid serializing image data
editor: use asset_get_image_size() to init nine-slice size
renderer: slight codegen indentation fix to ease debugging
undo-redo: disable test undo-redo for every op

To help us catch bugs with undo-redo, after applying any operation we
would then immediately undo the operation, and redo it, so if undo and
redo weren't working then it wouldn't be possible to do an operation in
the first place.

The problem is that the deletion of objects is now handled lazily such
that we only unregister object ids of deleted objects when we return to
the mainloop and we will hit debug assertions if we try and re-register
an object trying to give it multiple identifiers.
re-locate more engine code

This moves more code out of rig-engine.c into the frontend, simulator,
device, slave and editor.

A problem with RigEngine is that has become a dumping ground for state
that needs to be accessible across most Rig components. The aim now is
to take advantage of the rut trait system and create separate
program-engine types, like RigEditorEngine and RigDeviceEngine that
can be made up of traits and it will be easier for to re-jig the
organisation of code that supports the engines, without having just one
monolythic type.
rig-pb: avoid creating empy pb_diamond when serializing
diamond: actually update the tex size in _set_size()

This also makes sure that when we unref the model state for the diamond
that we set the pointer to NULL too.
rig-pb: avoid creating empty pb_grid state
editor: unregister old ui when reseting play-mode ui
rpc: add debug code to print server listening address
editor: read RIG_SLAVE_ADDRESS env for connecting to slave
rpc: read _RIG_SERVER_PORT to override listening port
android: install android based log handler for glib