Create GameState.

Needs testing, docs, and example usage.
Add simple example of using GameState.

It shows you how to switch back and forth between two instances of a
state.
CustomState now has functions that use instance properties

Previously, the custom handlers were defined in the `super()`
constructor making it impossible to reference `this`.

In this example I've defined the handlers in the `CustomState`
constructor, where `this` is a valid reference.
Show code sharing with the CustomState class.

If there are multiple `GameLoopState`s that share similair behaviour,
you can use a subclass of `GameLoopState` and create multiple instances.
Document all the things
Example cleanup

Make things simpler, and remove unneeded characters.
Make GameState abstract and require a subclass.

SimpleState and SimpleHtmlState were implemented to make using the
GameState easier.
Move /examples into /web, add MenuHtmlState.
`GameLoop` now has a `state` property.

Previously, it had a `setState()` method instead which wasn't idiomatic.
You must subclass SimpleState and SimpleHtmlState.

Previously, handlers could be passed into the constructor but this
discourages re-use and testability.
Add GameState related unit tests.
Documentation, spelling and code layout.
More spelling and clean-up.
Remove leading space before setter params.

Addresses code review feedback.
Merge pull request #57 from MarkBennett/add-game-state

Add GameLoop#setState()