Added support for better diagnostics
Added a recursive descent parser

This involves ticket #2.  This is still missing any way to parse the JSON and it
isn't very heavily tested.  But the basic skeleton is there.  I need to get rid
of the debugging output as well at some point.