jsonxsd2cpp.py support basic, simple, complex (no ref support) types

jsonxsd2cpp.py
- For basic and simple type,
   - do not generate code if element type is single,
   - generate basic array class in "detail" directory on demand
- For complex type,
   - complexType-sequence-element(simpleType: single/array)
   - complexType-sequence-element(complexType: single/array)
- parse simpleType/complexType in 2 phases
   - parse basic info in phase 1 general scan
   - parse full info in phase 2 (only called when it is used by
     specified element)
- TODO: do not support element(ref) and inlined simpleType/complexType

jsoncpphandler.py
- extract Cpp handlers to jsoncpphandler.py, which is called by
  jsondata2cpp and jsonxsd2cpp
- for array/object's EncodeJSON/DecodeJSON signature,
  replace json_spirit::Array/Object with json_spirit::Value
  That makes callers use same way to encode/decode array and object
- add one argument to handle_array/object_start/end
  that supports external array element type and object type instead of
  inlined class