Added a2_Size(), a2_Available(), a2_Space() with properties

Added APIs - dedicated calls as well as properties (A2_PSIZE,
A2_PAVAILABLE and A2_PSPACE) - for querying the total size,
data available for reading, and space available for writing,
respectively, of objects where this is applicable.

a2_Size() is implemented for most objects where it makes senes.

a2_Available() and a2_Space() are currently implemented only
for xinsert streams, as created with a2_OpenTap() and
a2_OpenSend().

Also added the A2_PPOSITION property, as an alternative to
a2_GetPosition() and a2_SetPosition() - which were previously
named a2_GetPos()/a2_SetPos().

Removed A2_PLENGTH; length of a wave. This is now covered by
a2_Size() and A2_PSIZE - which are actually implemented.

Added some enum type casts in switch()es, and filled in the
missing cases that were subsequently detected by the compiler.

Closes #112.