Refactor Block logic and implement items

This also makes it possible to place blocks.