add doxygen documentation for the public header file
add doxygen documentation for the public header file

this also significantly reorganizes the header file.

based heavily on kevin lyda's work in PR #140.

koolhazz/protobuf-c,Sannis/protobuf-c,koolhazz/protobuf-c,y12uc231/protobuf-c,Sannis/protobuf-c,pepsi7959/protobuf-c,koolhazz/protobuf-c,virqin/protobuf-c,pepsi7959/protobuf-c,y12uc231/protobuf-c,virqin/protobuf-c,hongbinz/protobuf-c,tutu12777/protobuf-c,Sannis/protobuf-c,tutu12777/protobuf-c,hongbinz/protobuf-c,hongbinz/protobuf-c,lanniaoershi/protobuf-c,lanniaoershi/protobuf-c,lanniaoershi/protobuf-c,pepsi7959/protobuf-c,virqin/protobuf-c,y12uc231/protobuf-c,tutu12777/protobuf-c