Move session management as early as possible

Session management now in GetData and WriteData public methods; session
passed in to Create, Read and Update document methods using extension
methods