[Cleanup] Moving Ball and Sprite out of main.js

File main.js is becoming too large and too conflict-prone. This commit moves `Sprite` to file `sprite.js` and `Ball` to file `ball.js`.