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.
use a promise to make this really pretty. look at how i did swapping.

it should look like:

```
matchedBlock.die().then(function(block) { 
  removeBlock(block);
}
```