Json Object in C++

Define the json related value type and parser. still need work.
Merge branch 'json-branch'
Assign Json String Value

Assign String value to json object as UTF8.
Fix bug and add new API.

1) Fix bug about setting error message, Only root node set error
message. Root node should only copy the json_value_ from parser.
2) Add new API to export JsonValue to Json object.
3) Add python-like API(not implement yet).
4) Add API to report error info.
Improve json parser.

1) Fix bug in json string parsing phase.
2) Add json array parsing code.
Add Comment.
Add post check after parsing each field.

Only space ',' ']' '}' can occur afer field.
Afther parsing whole json object json_data should be empty.
Replace isspace.

Json Object define its own white space.
ws = *(
  %x20 /              ; Space
  %x09 /              ; Horizontal tab
  %x0A /              ; Line feed or New line
  %x0D                ; Carriage return
)
Export override operator [] for json object

Two functions to export.
1) operator[size_t pos] const;
2) operator[const string& key] const;
Refactor parsing json array
Add Code to parse json object.

1) Change parse string function to adopt to object parser.
2) Add object parser.
Refactor: checking first character for each phase.
Fix bug

Fix bug: It's invalid when "," occurs at the end of array or object.
Add test for json parser.

Add unit test for json parser.
Add Dump functions.

Add ToString(): This function is to serialize json.
Add Dump(): This function output a human-readable json.
Merge branch 'master' into json-branch
Support Dump UTF8 string as json-format.