Simplify BlockMap logic

Empty blocks are encoded as other blocks, they exist in data as
zero-sized sprites so no special handling is needed.
Revert "Add enum for invalid/unused sprite id"

This reverts commit 113596316232f60ec184a86fde6fae1382aee7a5.

See prev. commit
Correctly process flipped blocks

This also fixes problem with rocks
Add some resources used on higher levels
Ensure frame number is un range of graphics resource