Fixed c_str() bug for mandatory empty string
sequence_cref sequence_mref implicit conversion

Allow make_sequence_cref<T> and make_sequence_mref<T> implicitly
convert to sequence_cref and sequence_mref.
Fixed some JSON decoder/encoder problems
Differentiate C++ mapping for one element sequence with named/unnamed cases.
Added proprietary tag support.
Fixed generating byteVector initial value bug
Implement encoding/decoding JSON byteVector 

For a byteVector type, treat it as HEX string in JOSN encoder/decoder. In addition, if the size is 16, add extra "-" in position 4,6,8,10 when encoding.
Fixed problem where tag is not assigned when specifying under <define>
Fixed bug for enum class name generation
Modify group code generation so that group_field_instruction::ref_instruction() is not null when it has only one static templateRef.
Added test for string_cref::value()
Another code generation enhancement  

This enhancement allows the generated code to differentiate "cite1" and "cite2" as follows

<template name="seq1">
  <sequence name="f1">
     <templateRef name="AnotherTemplate"/>
  </sequence>
</template>

<template name="cite1>
  <templateRef name="seq1"/>
</template>

<template name="cite2>
  <sequence name="f1">
     <templateRef name="AnotherTemplate"/>
  </sequence>
</template>
Added field_ref::refers_to() and aggregate_ref::refers_to() to circumvent the no assignment operator limitation.
Avoid using reinterpret_cast
Fixed bug of sequence_cref::ref_instruction()
Added new interface front(), back() and grow_by() to sequence_cref/mref
Fixed another problem when static templateRef refers to another template with only one sequence
Added support to export mFAST data to SQLite3 database
Remove operator! and bool conversion operator for field_ref and aggregate_ref.

Those two operator would cause confusion when a field is a boolean or an integer field. Some might expect !ref() to be ref().value() == 0 rather than ref().absent().
Added iterator support for aggregate_ref