refactored tinydircpp.h and tinydircpp.cpp

using pimpl, exceptions, hiding implementation details, less duplicated code, proper use of vector::size, removed bug with resizing path

the class is now fully RAII enabled so there is no need to be calling close() anymore