Implemented IDungeonBlock, doors more flexible

- IDungeonBlock allows any block to be considered valid when verifying
dungeon core structure integrity
- Any block may now be set as the dungeon's "door"
- Light and Heavy Barrier "door" versions of secret rooms will now
spawn, with completely unbreakable walls; only way to access is by
moving or destroying the barrier blocks