Added TileEntity NBT support for BlockStates

Plugins that call BlockState.update should now properly restore TileEntity
data if it exists.

* Added SpawnReason compatibility for custom spawns made by mods assuming
  they call the correct events. This fixes Prism logging issues with
  "entity-spawn" action.
  - Any mod calling LivingSpawnEvent.CheckSpawn will set SpawnReason.NATURAL
  - Any mod calling LivingSpawnEvent.SpecialSpawn will set SpawnReason.SPAWNER

* Added support for running 1.7.9+ plugins in Cauldron dev environment