Issue #11 - Battle system now takes canvas as an argument to the constructor. Re-organized demo.js and added a bunch of comments explaining what everything's doing.