using stack.size() > 0 instead of !stack.empty() can incur an O(N) performance hit instead of O(1); updated in all cases. added json visitor, python visitor, python wrapper, and completed python object definition