Refactored global block property arrays

This is actually a proposal.

Advantages:
- Less global namespace pollution.
- Potentially huge memory usage decrease (Using bitfields for boolean values)
- Flexible / Easier to dynamically register new blocks.