avoid max/min macro substitution

sometimes compilers/libraries contain max/min macros (for C++)
this may caase unclear error messages.
Fix for ssize_t/size_t re-definition error
MSVC C++ has ssize_t and size_t types already. There is no need to define them
Merge pull request #29 from mntmnt/mongo-master

C++ inclusion fixes.