Major update to use single pass write, brick api, and more
This is a major rewrite of the OpenZGY bulk layer. The goal is to speed up writes.
Low resolution bricks will now be written interleaved with full resolution data instead of written in a separate pass. The pull request includes other performance improvements as well.
The pull request has significant risk of bugs due to the amount of changes. Roughly 170 commits adding 14% and removing 5% of the initial 65,000 lines of code.
A more detailed explanation of this pull request can be found in doc/single-pass-write.md.