Use incremental decoder

Better behaviour if a read stops in the middle of a multi-byte character
Extract multi terminals demo to a separate file.