Implemented a2_Run() and fixed a bunch of driver related issues

Implemented the a2_Run() call, except without any buffer pointer
arguments or similar.

Renamed the "stream" driver as "buffer", which is more appropriate
and avoids confusion with the new stream API.

Also fixed a few stupid bugs in the aforementioned buffer driver.

Removed redundant tests in a2_RootVoice(). You can't get a state
without a root voice, and even if you could, you'd just get an
illegal voice handle.

Removed the A2_NOTRUNNING error code, as that can never happen
with the current API design. (Can't make calls without a state!)

Added logic to unregister the builtin drivers when all engine
master states and user drivers have been unregistered, to keep
Valgrind and the like from whining about memory leaks.