Generalize LockingStream
Add mark/seek primatives
Change seek primitives
Change constructor