move constructor of PDFDocument to cpp file
adding more documentation in C++ land