Refactor battle.js to use prototypes

Also add 'destroy' method to Sprite, Pokemon, and Side, as well as rename Battle.dealloc to Battle.destroy.

PS client leveled-up!
- Readability +3
- Maintainability +1
- Memory management +1