1. CMakeLists.txt added to automatically obtain the revised version number from the git repository.
2. Adjusted some header files to fix Windows platform compilation errors.
3. Eliminate some compilation warnings.
Callbacks allow n2n API users to extend n2n without modifying the upstream code. This also allows us
to move the hin2n code, which is specific of android, out of the n2n repository.