Some minor header cleanup and corrections

A2_xinsert_cb moved from types.h to audiality2.h, where the only
API using that is declared.

Removed long since obsolete A2_gid and A2_vid typedefs.

Removed A2_WRAP, as we're most likely never going to implement that.

Removed incorrect nonsense comments regarding the RCHM_manager type
array fields.
RCHM bumped to version 0.3

rchm_TypeName() and rchm_TypeUserData() are now inlined.

(The Audiality 2 stream interface make extensive use of the latter,
and it's just a few instructions anyway.)
Added object stream API

Added stream.[ch], which declare and implement a new stream
interface that allow applications to read and write audio data
from/to objects.

Waves now use this new API, which means a2_WaveWrite() and
a2_WavePrepare() have been removed, and you can now use
a2_Write() and a2_Flush() (or a2_Close()) respectively.

a2_WaveNew() returns a handle that already has an open write
stream (not much point in creating an empty wave and not write to
it), but to write to a wave created with a2_WaveUpload() you need
to call a2_StreamOpen() on the wave handle first.

Also added a simple internal type registry, so we can attach
various additional info to engine types. (Currently, a state
pointer and an optional a2_StreamOpen() backend callback.)

Note that RCHM userdata now holds a pointer to the respective
A2_typeinfo struct - NOT the engine state! The object destuctors
that were affected by this have been fixed.

Closes #34.