Cleaned up the stream API backend

Added A2_TSTREAM handle type that refers to an object implemented
over the A2_stream struct.

a2_StreamOpen() renamed a2_OpenStream(), and now returns a stream
handle, rather than grafting stream logic onto the target object.

Removed a2_StreamClose(). (A stream is closed when its refcount
reaches zero, so the API call to use now is a2_Release().)

Closes #75.
Fixed compiler memory leak of strings from a2c_ndup()

The lexer uses a2c_ndup() to grab properly terminated strings from
the lex buffer or directly from the source buffer, but there were
some paths where it would forget to free them.