Fade out matched blocks

Previously when blocks were matched the would be removed instantly.
Now they have an animated fade out. NOTE: This change now uses the
previously unused BlockState GONE.
Refactor block fade out to use promise

Previously looped over all blocks in the grid to check if fading
was complete. Now use promise that blocks use when they're faded
out. This is asyncronous and has better performance. NOTE: This
removes the dependency on the again unused BlockState GONE.
Merge pull request #9 from ymmn/fade-blocks

Fade out matched blocks