Big refactoring of Datastream into simpler DataEncoder/DataDecoder
Update docs
Update .gitignore