Players should be constructed in idle state

Fix issues encountered
* play() should not set a start time
* cancel() should not nullify the source
Add tests for play() and reverse() not setting start times
Merge pull request #247 from dstockwell/newidle

Players should be constructed in idle state