new field to select spatial pooler implementation in description.py

valid values are 'oldpy' (FDRCSpatial2, default), 'py' , and 'cpp' (Gil's optimized C++ implementation)
if the value is unset, default oldpy is used.

to set, use 'spatialImp' field in spatial pooler section of description.py/model_params.py with one of the avail
values.
Fix bug in region logic.