major changes to JSON iteration code

Significantly refactored the iteration code to work with different
classes in recursively traversing a given JSON data object.

Code can now be told to look for specific things on demand and then
pass what it finds back to specified handler functions.

Incremented version number.