Add hopper updates for chest changes, refactor, and fix spigot comment

Hoppers cannot push to or pull from chests which cannot be opened. The conditions to access a chest are (1) does not have a solid block above and (2) does not have an ocelot sitting above. This commits adds logic to ocelot and block changes to be sure hoppers update properly when these conditions change.