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. 
Again, when you change this to `this.startX = startX` (or if you want to delimit that they're private, `this._startX = startX`), the fact that it's a member variable will be very clear, so no need for a comment. However, you can decorate this assignment with `@type` (see [here](http://usejsdoc.org/tags-type.html) for proper jsDoc usage of that).