Movement command, Animation State

Addresses #6 
Everything works as far as I can tell, but I expect the style will need tons of fixing, since I'm new to javascript. I don't mind making lots of changes, so go ahead and tear this apart.
In addition to the MovementCommand and AnimationState classes, It made sense to me to make a Coordinate struct that represents coordinate pairs ({x: __, y: __}). Of course, we didn't specifically talk about that in the original plans, so I can remove it if you don't like it. 
How javascript scope lookup for variables works is that when you have a variable that's not `this`, it looks for it in the current scope (the `getStartPosition` function) then the global scope (`window`). I'll detail this more below, but these should be `this.startX` and `this.startY` instead. Right now, they will both be `undefined`.