added repeat 'atTime' feature to audio.play

This PR makes it possible to define a time (audio reproduction time range) at which the sound should be repeated. It allows you to force a seemless/gapless sound loop, even with your browser's limitations (the delay that occurs in most if not all systems between the end of the execution of the audio 'iteration' and the proper restart). Works even if your file has a gap at the end (if an .mp3, for example), but obviously not at the beginning.

Usage:
``` // Repeat (forever) when sound reach second 23.2. Should actually repeat somewhere between second 23.2 and 23.4.```
``` Crafty.audio.play("backgroundMusic", -1, 1, 23.2); ```
I don't think so. Unless I'm mistaken (which could the case), no, because keeping it ```s``` would cause problems, since ```s.played``` and ```s.repeat``` were being increased continuously, at each play(or repeat), and that makes repeating to break. 
Also, ```s``` is an obj shared between all the instances (channels) of the same sound, so if you're playing the same sound more than once at the same time, reseting ```s.repeat``` would change that value for all instances, which caused more problems, and we wouldn't want that. 
Moving those into ```c```, makes reseting those values painless and is super effective.