A big overhall

* Setup states to keep track of where we are when parsing values.
  Since we want values to function like javascript values wee need the
  ability to slurp up things like __key__:foo.test[1]

* Added a unit test for a complex parsing issue for issue #4
Added some more unit tests for various other complex data structures
Merge branch 'feature/fix-issue-4-rewrite'