Transformed dtl::BasePtr into template
* dtl::BasePtr can now be specialized on both const and non-const types
** first step to enabling const dtl::BufferIterator