Improve quarry performance.

Reduce getBlockId calls in canChangeBlock/isSoftBlock to one, add canChangeBlock/isSoftBlock with blockID parameter to allow for only a single getBlockId call per block checked for the visit list.
Use heightmaps when building visit list to increase performance when checking a mostly empty quarry

Signed-off-by: Ross Allan <rallanpcl@gmail.com>