improvements to chunkrenderer internals

... and also fixes to bugs in the last commit

Simplified process to add a new data type function.

fixed off by 1 error in block definitions array length

also changed the struct member max_blockid to blockdefs_length to be more clear

similarly, changed max_data to models_length to match (although there
was no bug there)

fixed typo "dataparmeter"

also added the new files to setup.py, which were missing from the last
commit(s) (oops)
Broke out block definitions into their own overviewer.blocks package

blockdefinitions.py module now only contains the class files and the
get_default() function dispatches to a loader in blocks/__init__.py

A new data type is added: sticky neighbors, which outputs one of 16 data
values depending on whether neighbors are in a given set. Untested.

a glass_panes file is added but incomplete. It is meant to be the block
to test the sticky neighbors type.

Changed data type exports from Python Capsules to integers referencing
an element of the chunkrenderer_datatypes array. This was necessary
beacuse Capsule objects aren't pickelable and a reference needs to pass
through pickle with the uncompiled block definitions.