Another major Block change

- Proper attribute getting and setting
- prototyping
- blocks are created by 'new Block(blockID, textures, [BlockProperties])'