Basic unit testing for Sampler class.

Good enough just to make sure I don't break anything.
Refactored `Sampler` to support `onended` and multiple calls to `stop`.

This implementation is not meant to be a polyphonic sampler, although it
could evolve into one.  I have implemented a list of active nodes instead of
just keeping track of the most recent.  This list is maintained so the nodes
have time to finish and call `onended` before they are removed from the heap.
Since they aren't removed immediately after calling `stop`, it allows `stop`
to be called multiple times, because we wait until the sound actually finishes
to remove the reference to the node.

Calling stop multiple times is specified here:

http://webaudio.github.io/web-audio-api/#widl-AudioBufferSourceNode-stop-void-double-when
updated readme with info on how to run unit tests.
Merge pull request #10 from colinsullivan/sampler_node_management

Sampler node management