Added "Sound" class for smart reuse of sources

Added a "Sound" class which abstracts AL Sources so a client can create
a sound in a single line, and play the sound in a single line with
intelligent reuse of sources after they've finished playing; since
sources are a finite resource (32 max sources on iOS, 256 max sources on
most desktops)